vector中的erase的用法
时间: 2023-11-12 14:57:02 浏览: 66
vector中的erase函数可以用来删除vector中的元素,其有两种用法:
1. erase(iterator position):删除指定位置的元素,返回指向被删除元素之后元素的迭代器。
2. erase(iterator first, iterator last):删除[first, last)区间内的元素,返回指向被删除元素之后元素的迭代器。
例如,删除vector中第二个元素可以使用以下代码:
```
vector<int> vec = {1, 2, 3, 4};
vec.erase(vec.begin() + 1);
```
这样,vec中的元素就变成了{1, 3, 4}。
相关问题
vector 中erase
在使用C++中的vector时,erase函数用于从vector中删除指定元素。引用[2]给出了一个使用迭代器的示例,它遍历vector并在满足条件的情况下删除元素。然而,这个示例存在一个问题,即在删除元素后,迭代器指向的位置会失效,导致程序出错。为了解决这个问题,需要在删除元素后更新迭代器的位置。引用提供了一个修正后的示例,使用erase函数删除元素后,将迭代器指向删除元素后的下一个位置。这样可以确保迭代器仍然指向有效的元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [【C++】vector中erase用法](https://blog.csdn.net/Vcrossover/article/details/106243627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [vector的erase()](https://blog.csdn.net/try_again_later/article/details/88964976)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
vector+erase用法
在C++的vector中,erase函数用于删除vector中的元素。下面是使用erase函数的示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 删除指定位置的元素
vec.erase(vec.begin() + 2); // 删除索引为2的元素,即3
// 删除指定范围的元素
vec.erase(vec.begin(), vec.begin() + 2); // 删除索引为0和1的元素,即1和2
// 删除最后一个元素
vec.pop_back();
// 输出剩余的元素
for (int num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:4 5,表示删除元素后剩余的元素。
注意事项:
- erase函数接受一个迭代器作为参数,用于指定要删除的元素的位置或范围。
- 如果要删除单个元素,可以直接传递要删除元素的迭代器。
- 如果要删除一段范围内的元素,可以传递要删除范围的起始和结束迭代器。
- erase函数会返回一个指向被删除元素之后的元素的迭代器。
- erase函数会改变vector的大小,因此在使用erase函数后,需要注意迭代器的有效性。