如果给出以下代码,我如何将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
!
答案 0 :(得分:1)
当您执行v1.insert(v1.begin(), 7)
时,您只是在v1的开头插入一个元素。您不希望在插入元素后,元素的数量保持不变。
我认为你想要的只是v1[0] = 7
。
答案 1 :(得分:0)
您可能会误解insert()
的作用。
如果您进行v1.insert(position, value);
,则将value
插入position
,并且position
内v1
之后的任何元素都将向右移动一个位置。 / p>
v1: 1,3
^
insert 7
这是您在代码中所做的事情。
您可能需要v1[0] = 7;//v1[position] = value
。这会将position 0
上的元素更改为7
。