簡體   English   中英

vector.size()函數的計算量很大嗎?

[英]Is vector.size() function computational heavy?

只想知道大小函數的計算成本高還是低?

vector<someBigType> vec;
vec.push_back(something0);
for(unsigned i = 0; i < a bigNumber; ++i)
{

    // do something ...

    // measure the size
    int size1 = vec.size();

    // A lot of push_backs (vec may grow very large)
    vec.push_back(something);

    // Or shall I just use counter++, whenever a push_back is called?

    // measure the size again
    int size2 = vec.size();

    int delta = size2-size1;

    // Use delta to do something
}

如果我們檢查cppreference條目中的std :: vector :: size內容,它會說:

復雜

不變。

因此,它以恆定的時間運行。 這與C ++標准草案Table 96 — Container requirements一致,該Table 96 — Container requirementssize()的復雜性列為常數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM