C++ cin for循环不能按预期工作?

Cod*_*ave 0 c++ cin c++11

我有以下代码:

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)

我希望intcina中连续存储3 秒vector.但是循环没有按预期工作,因为循环在达到条件后仍然继续运行i < 3.

我尝试在Youtube上观看使用for循环,cin看起来它应该工作正常(像这一个)

我的代码出了什么问题?

输出:

在此输入图像描述

Hol*_*olt 6

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)


Ita*_*chi 5

   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)

应该工作正常.