只是想知道大小函数计算代价是否昂贵?
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
}
Run Code Online (Sandbox Code Playgroud)
如果我们查看std :: vector :: size的 cppreference条目,它会说:
复杂
不变.
所以它在恒定的时间运行.这与C++标准草案一致,Table 96 — Container requirements后者列出了size()常量的复杂性.
| 归档时间: |
|
| 查看次数: |
935 次 |
| 最近记录: |