Noo*_*eer 2 c++ for-loop vector
如果std::vector在for循环参数中增加a的大小for,它将起作用吗?for循环会在每次迭代时重新计算向量的大小吗?
例:
for(int i=0; i<myVector.size(); i++)
{
myVector.push_back(new element);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
是的,myVector.size()将在每次迭代时重新评估,每次返回一个更大的值。因此,您的循环将永远不会结束,因为它就像一条狗在追自己的尾巴(假设初始大小不为零)。
如果要将向量中元素的数量加倍,则需要先存储myVector.size(),然后在循环中使用存储的值,如下所示:
size_t origSize = myVector.size();
for(int i=0; i<origSize; i++)
{
myVector.push_back(new element);
}
Run Code Online (Sandbox Code Playgroud)