我有以下代码:
vector<int> scores(3, 0);
int wow;
for (int i = 0; i < 3; i++) {
cout << i << endl;
cin >> wow;
scores.push_back(wow);
}
Run Code Online (Sandbox Code Playgroud)
我希望int从cina中连续存储3 秒vector.但是循环没有按预期工作,因为循环在达到条件后仍然继续运行i < 3.
我尝试在Youtube上观看使用for循环,cin看起来它应该工作正常(像这一个)
我的代码出了什么问题?
输出:

push_back在向量的末尾添加一个元素,调整向量的大小,使其大小递增.如果要设置矢量值,则需要执行以下操作:
cin >> wow ;
scores[i] = wow ;
Run Code Online (Sandbox Code Playgroud)
或更好 :
cin >> scores[i] ;
Run Code Online (Sandbox Code Playgroud)
另一种方法是声明一个没有大小的向量但效率较低(在每个循环中调整数组的大小):
vector <int> scores ;
for (...) {
cin >> wow ;
scores.push_back (wow) ;
}
Run Code Online (Sandbox Code Playgroud)
vector<int> scores;
int wow = 0;
for(int i = 0; i < 3;i++){
cout<<i<<endl;
cin>>wow;
scores.push_back(wow);
}
Run Code Online (Sandbox Code Playgroud)
应该工作正常.