Cpp_Primer_Practice
Cpp_Primer_Practice copied to clipboard
【报错】9.22 题目中,应该同时修改 mid 的值,否则也会失效
int main()
{
vector<int> iv = { 1,2,3,4,5,6,7,8 };
vector<int>::iterator iter = iv.begin(),
mid = iv.begin() + iv.size() / 2;
while (iter != mid)
{
if (*iter == 3)
{
iter = iv.insert(iter, 2 * 3);
++iter;
mid = iv.begin() + iv.size() / 2;
}
++iter;
}
return 0;
}
:cow:,我今天刚刚看到这里,也没注意,vscode运行也没报错,后面我在 for 循环里 加上 cout << __LINE__ << endl;,发现会一直循环,后面 vscode 自动结束循环了
这么写的话mid也在跟着后移吧