我尝试从矢量中删除元素,并且使用erase()方法工作正常,但在删除元素后,矢量的大小仍然相同。
std::vector<int> myvector;
myvector.push_back (1);
myvector.push_back (2);
myvector.push_back (3);//here the size is 3
myvector.erase(myvector.begin()+1);//I think normally the size should be 2 after removing the element
是否有可以执行此操作的功能,或者我应该手动执行此操作,我是c ++的新手我检查了文档,但我没有找到解决方案。
答案 0 :(得分:5)
更改大小,然后使用成员函数erase删除向量的元素。如果你的意思是容量,那么它就不会改变。
这是一个示范程序
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v { 1, 2, 3 };
std::cout << "v.size() = " << v.size() << std::endl;
for ( int x : v ) std::cout << x << ' ';
std::cout << std::endl;
v.erase( v.begin() + 1 );
std::cout << "v.size() = " << v.size() << std::endl;
for ( int x : v ) std::cout << x << ' ';
std::cout << std::endl;
return 0;
}
输出
v.size() = 3
1 2 3
v.size() = 2
1 3