vector的erase函数使用例子
时间: 2024-06-15 16:06:32 浏览: 7
vector的erase函数用于删除vector中的元素。它有两种常用的使用方式:
1. 删除单个元素:
```cpp
vector<int> nums = {1, 2, 3, 4, 5};
nums.erase(nums.begin() + 2); // 删除索引为2的元素,即删除数字3
```
在这个例子中,我们使用`erase`函数删除了索引为2的元素,即数字3。此时,`nums`变为{1, 2, 4, 5}。
2. 删除一定范围内的元素:
```cpp
vector<int> nums = {1, 2, 3, 4, 5};
nums.erase(nums.begin() + 1, nums.begin() + 4); // 删除索引为1到3的元素,即删除数字2、3、4
```
在这个例子中,我们使用`erase`函数删除了索引为1到3的元素,即数字2、3、4。此时,`nums`变为{1, 5}。
需要注意的是,使用`erase`函数后,被删除元素之后的所有元素会向前移动,所以索引也会相应地改变。
相关问题
vector中erase函数
在C++中,`std::vector`的`erase`函数用于从向量中删除一个或多个元素。`erase`函数有两种常见的用法:
1. 删除单个元素:
```cpp
std::vector<T>::iterator it = vec.begin(); // 获取要删除的元素的迭代器
vec.erase(it); // 删除指定位置的元素
```
2. 删除一个区间范围的元素:
```cpp
std::vector<T>::iterator first = vec.begin(); // 获取要删除的区间起始位置的迭代器
std::vector<T>::iterator last = vec.end(); // 获取要删除的区间结束位置的迭代器
vec.erase(first, last); // 删除指定区间范围内的元素
```
请注意,`erase`函数会改变容器的大小,并且后续的元素会向前移动以填补被删除的空缺。因此,在使用迭代器删除元素之后,需要小心处理迭代器的有效性。
如果你有特定的问题或者需要更详细的例子,请提供更多的上下文或代码,我将很乐意给出更具体的帮助。
vector中的erase函数
vector中的erase函数用于删除一个或多个元素。它的用法有多种形式,可以删除指定位置的元素,也可以删除指定范围的元素。在引用中的示例代码中,a.erase(a.begin()+1, a.begin()+4)表示删除了a中位置从1到3的元素,即删除了2、3、4这三个元素。在引用中的示例代码中,q.erase(unique(q.begin(),q.end()),q.end())表示删除了q中重复的元素。在这个例子中,排序后的q为{0, 1, 3, 4, 5, 6, 8, 9, 10},通过erase函数删除了重复的元素,最终得到了去重后的结果。需要注意的是,在使用erase函数删除元素时,要确保删除操作不会越界,并且要注意迭代器的失效问题。具体来说,在遍历容器并删除元素时,不能直接在循环中调用erase函数,而是应该在循环体内使用erase函数删除元素。这是因为在调用erase函数后,容器的大小和迭代器会发生变化,如果继续使用失效的迭代器进行遍历操作,会导致程序出错。所以应该在erase函数之后更新迭代器。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)