vector.size() 函数计算量大吗?

  • 本文关键字:计算 函数 size vector c++
  • 更新时间 :
  • 英文 :


只是想知道大小函数的计算成本是否昂贵?

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
}

如果我们查看 std::vector::size 的 cppreference 条目,它说:

复杂性

不断。

所以它在恒定的时间内运行。这与C++标准草案一致Table 96 — Container requirements该草案将size()的复杂性列为常数。

最新更新