vector.erase
是否会调整矢量对象的大小,以便我可以使用vector.size()
来衡量缩小的尺寸?
;
vector<int> v(5);
v = {1,2,3,4,5};
我想删除4 by;
v.erase(v.begin()+4);
我的矢量对象v
现在的大小是4吗?换句话说,在此操作之后是v.size() == 4
?
答案 0 :(得分:8)
是的,在删除元素时,尺寸会降低。
不要害怕测试自己,通过写一个最小的例子,像这样:):
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v(5);
v = {1,2,3,4,5};
cout << v.size() << endl;
v.erase(v.begin()+4);
cout << v.size() << endl;
return 0;
}
你会得到:
gsamaras@gsamaras-A15:~$ g++ -Wall -std=c++0x main.cpp
gsamaras@gsamaras-A15:~$ ./a.out
5
4
我们会期待这样吗?我的意思是ref说:
返回尺寸
返回向量中的元素数。
这是矢量中保存的实际对象的数量,而不是 必然等于其存储容量。