我尝试从向量中删除元素,并且使用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
Run Code Online (Sandbox Code Playgroud)
是否有一个功能可以做到这一点或我应该手动完成,我是c ++的新手我检查了文档,我没有找到解决方案.
更改大小,然后使用成员函数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;
}
Run Code Online (Sandbox Code Playgroud)
输出是
v.size() = 3
1 2 3
v.size() = 2
1 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1882 次 |
| 最近记录: |