vector的erase用法
vector是C++标准库中最常用的容器之一,它可以动态地增加或减少存储元素的空间。经常需要在程序中对vector中的元素进行删除,这时候就可以使用vector的erase函数。下面就详细介绍一下vector的erase用法。
1. 基本用法
vector的erase函数可以删除vector中的一个或多个元素,其形式如下:
```
iterator erase (iterator position);
iterator erase (iterator first, iterator last);
```
其中,第一个形式的erase函数删除参数position位置上的元素,返回删除元素后的下一个元素
的迭代器。而第二个形式的erase函数删除从参数first到参数last之间的元素,返回删除元素后的下一个元素的迭代器。
下面是两个示例代码:
```
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v{1, 2, 3, 4, 5};
// 删除第一个元素
v.erase(v.begin());
for (auto i : v)
cout << i << " "; // 输出:2 3 4 5
// 删除第1个到第3个元素
v.erase(v.begin(), v.begin()+3);
for (auto i : v)
cout << i << " "; // 输出:5
return 0;
}
```
2. erase和resize
由于vector中的元素是动态变化的,因此在使用erase函数删除元素后,通常需要调整vector的大小,使得vector中的元素数量与实际存储的元素数量相同。此时可以使用vector的resize函数,如下所示:
```
void resize (size_type n, value_type val = value_type());
```
其中,参数n是vector新的大小,参数val是新加入元素的初始值,默认值为0。需要注意的是,如果新的大小n小于vector的当前大小,resize函数会删除多余的元素,而如果新的大小n大于vector的当前大小,则会添加新的元素。示例如下:
```
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v{1, 2, 3, 4, 5};
// 删除第一个元素
v.erase(v.begin());
// 调整vector大小
v.resize(v.size());
for (auto i : v)
cout << i << " "; // 输出:2 3 4 5 0
return 0;
resize函数c++}
```
3. erase和remove
在使用erase函数之前,有时候需要先使用remove算法移除vector中的特定元素,以满足某些特定需求。remove算法的形式如下:
```
iterator remove (const value_type& val);
```
其中,参数val是要移除的元素的值,该函数会将所有等于元素val的元素移到vector的末尾,并返回指向这些元素的起始位置的迭代器。需要注意的是,调用remove函数并不会改变vector的大小,因此需要在调用erase函数之前,调用resize函数调整vector的大小。示例如下:
```
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论