for(int i=0; i<myVector.size(); i++)
{
myVector.push_back(new element);
}
谢谢
是的,myVector.size()
会在每次迭代中重新计算,每次都返回一个更大的值。因此,你的循环永远不会结束,就像狗追自己的尾巴一样(假设初始大小不为零)。
如果你想将向量中的元素数量加倍,你需要提前存储myVector.size()
,并在循环中使用存储的值,像这样:
size_t origSize = myVector.size();
for(int i=0; i<origSize; i++)
{
myVector.push_back(new element);
}
i
永远无法赶上。
for(auto x: some_vector) { some_vector.push_back(new_element);}
。 - Jens