矢量不显示完整的内容

时间:2015-10-28 19:03:33

标签: 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){
        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;
}

2 个答案:

答案 0 :(得分:1)

小心你的分号:

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 :(得分:1)

通过向量迭代最好使用iterator

for(auto it = std::begin(v); it != std::end(v); it++)
    std::cout << "Odd number: " << *it << std::endl;