C++ 矢量不显示全部内容

C++ 矢量不显示全部内容,c++,C++,我写了一个脚本,将奇数存储在一个向量中,然后在输入负数后在末尾显示 由于某些原因,仅显示第一个奇数。代码如下: #include<iostream> #include<string> #include<vector> using namespace std; int main() { int i=0; int val=0; int rem; vector<int>v; while(val>=0){

我写了一个脚本,将奇数存储在一个向量中,然后在输入负数后在末尾显示

由于某些原因,仅显示第一个奇数。代码如下:

#include<iostream>
#include<string>
#include<vector>
using namespace std;

int main()
{
    int i=0;
    int val=0;
    int rem;
    vector<int>v;

    while(val>=0){
        cout<<"Please enter an integer: \n";        
        cin>>val;
        rem=val%2;
        if(rem==1)
            v.push_back(val);
        else;

    }
    for(int i=0; i<v.size(); ++i);
        cout<<"Odd Numbers: " <<v[i]<< "\n";

    system("pause");
    return 0;
}

注意分号:

for(int i=0; i<v.size(); ++i);
//                          ^^^
    cout<<"Odd Numbers: " <<v[i]<< "\n";
您正在运行循环:

for(int i=0; i<v.size(); ++i) {
    ;
}
cout<<"Odd Numbers: " <<v[i]<< "\n";

遍历向量最好使用迭代器


1.if/for语句始终使用大括号。2.这条线是什么;为什么?你有一些语法错误。公开真实代码。这行forint i=0;我
for(auto it = std::begin(v); it != std::end(v); it++)
    std::cout << "Odd number: " << *it << std::endl;