C ++ vector <int>:将int元素添加到矢量中,它们是偶数且已经在向量中

时间:2016-11-13 22:12:13

标签: c++ vector elements

我有一个6个整数值的向量:

vector<int> my_vec = {1,2,3,4,5,6}

我希望将偶数添加到向量中。我已经尝试过这个并且不了解结果。也许有人可以指出我正确的方向!

// Example program
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector<int> v ={1,2,3,4,5,6};

    for(int i = 0; i < v.size(); ++i){

        if(v.at(i) % 2 == 0){

            v.push_back(i);
        }
        cout << v.at(i);
    }
}

我不明白为什么值1,3,5被添加到向量而不是2,4,6。

1 个答案:

答案 0 :(得分:3)

v.push_back(i);

您添加的新项目是偶数值的索引,而不是值本身。

值为2,4和6的项目位于索引1,3和5。

我猜你的意思是:

v.push_back(v.at(i));

...但是现在你的程序永远不会结束,因为你(a)循环直到你到达向量的末尾,并且(b)一直在扩展向量。

你可以通过存储&#34;初始&#34;来解决这个问题。变量v.size()n的值,并在i到达n之前循环。