擦除一个或多个元素后,矢量数组是否调整大小?
问题描述:
vector.erase
调整矢量对象的大小,以便我可以使用vector.size()
来测量缩小的大小吗?例如擦除一个或多个元素后,矢量数组是否调整大小?
;
vector<int> v(5);
v = {1,2,3,4,5};
我想删除4;
v.erase(v.begin()+4);
我的矢量对象v
现在的大小是4。换句话说就是在这个操作之后是v.size() == 4
?
答
是的,尺寸减少随着您擦除元素。
不要害怕,虽然测试自己,写一个小例子,像这样:):
#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;
}
,你会得到:
[email protected]:~$ g++ -Wall -std=c++0x main.cpp
[email protected]:~$ ./a.out
5
4
,我们将期待那对吗?我的意思是说ref:
返回大小
返回向量元素的数量。
这是向量中保存的实际对象的数量,而不是 必须等于其存储容量。
只需尝试一下或阅读文档。 –
顺便说一句,不要混淆大小和容量。 – deviantfan
.size()是否减小。 – Kishaan92