int main()
{
vector<int> v(5);
v[0]=0; v[1]=1; v[2]=2; v[3]=3; v[4]=4;
for (int i=0; i<v.size(); i++)
v.pop_back();
for (int i=0; i<v.size(); i++)
cout<<v[i];
cout<<"\n";
return 0;
}
我很困惑为什么输出是“01”。我会认为输出是“0”
最佳答案
通过以下方式跟踪第一个 for 循环的每次迭代:
i v.size() v (before pop_back)
0 5 0,1,2,3,4
1 4 0,1,2,3
2 3 0,1,2
3 2 0, 1
自3 < 2
起,循环就停在那里(当i == 3 时不弹出)是假的。所以v
的最终内容循环之后是 [ 0, 1 ]。
关于c++ - 帮助弄清楚为什么这个输出是 "01",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5335060/