我创建了一个整数向量。我发现第一次push_back所花费的时间明显大于后续的push_back。为什么会如此。为了避免重新分配,我保留了向量的大小。
std::vector<int> myList;
myList.reserve(10);
for(int i = 0; i < 10; ++i)
{
myList.push_back(rand() % 100);
}
push_back(以纳秒为单位)获得的时序如下。我正在使用-O3
标志编译程序。
1536
166
124
127
119
125
127
125
126
127
有人可以解释10
次的巨大差异。