如何将元素插入向量而不是元素已存在于向量中?

时间:2018-06-17 21:49:46

标签: c++ c++11 vector

如果给出以下代码,我如何将7插入v1[0]而不是v1[0]已存在的值:

std::vector<int> v1;
v1.push_back(1);
v1.push_back(3);
std::cout << "The size of v1:  " << v1.size() << std::endl; // output: 2
v1.insert(v1.begin(), 7);
std::cout << "The size of v1:  " << v1.size() << std::endl; // output: 3 (I want that it's will be "2")
std::cout << v1[0] << " ," << v1[1] << " ," << v1[2]; // 7 ,1 ,3

但是,我希望v1只包含两个元素:7 , 3

2 个答案:

答案 0 :(得分:1)

当您执行v1.insert(v1.begin(), 7)时,您只是在v1的开头插入一个元素。您不希望在插入元素后,元素的数量保持不变。

我认为你想要的只是v1[0] = 7

答案 1 :(得分:0)

您可能会误解insert()的作用。 如果您进行v1.insert(position, value);,则将value插入position,并且positionv1之后的任何元素都将向右移动一个位置。 / p>

v1: 1,3
   ^
insert 7

这是您在代码中所做的事情。 您可能需要v1[0] = 7;//v1[position] = value。这会将position 0上的元素更改为7