我有一个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。
答案 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
之前循环。