[英]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 requirements
將size()
的復雜性列為常數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.