C++中如何从vector中删除元素
发布时间: 2024-05-02 15:43:16 阅读量: 85 订阅数: 42
![C++中如何从vector中删除元素](https://img-blog.csdnimg.cn/9a09b954a8374aa9b0f38233a8722ee3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZSQ54Gr,size_20,color_FFFFFF,t_70,g_se,x_16)
# 2.1 erase()函数
`erase()` 函数是 C++ vector 中用于删除元素的主要函数。它接受一个迭代器作为参数,该迭代器指向要删除的元素。`erase()` 函数返回一个迭代器,指向被删除元素之后的元素。
### 2.1.1 erase(iterator)
`erase(iterator)` 函数删除由给定迭代器指向的元素。例如:
```cpp
vector<int> v = {1, 2, 3, 4, 5};
auto it = v.begin() + 2;
v.erase(it); // 删除索引为 2 的元素
```
### 2.1.2 erase(iterator, iterator)
`erase(iterator, iterator)` 函数删除由给定迭代器范围内的所有元素。例如:
```cpp
vector<int> v = {1, 2, 3, 4, 5};
auto it1 = v.begin() + 1;
auto it2 = v.begin() + 3;
v.erase(it1, it2); // 删除索引为 1 到 2 的元素
```
# 2. C++ vector元素删除操作
在C++中,vector容器提供了多种元素删除操作,以满足不同的删除需求。本章节将详细介绍erase()、pop_back()和clear()函数,帮助你深入理解vector元素删除的机制和使用方法。
### 2.1 erase()函数
erase()函数是vector中功能最强大的元素删除操作,它允许你根据指定的迭代器或迭代器范围来删除元素。
#### 2.1.1 erase(iterator)
erase(iterator)函数删除指定迭代器指向的元素。该函数返回一个新的迭代器,指向被删除元素之后的元素。
```cpp
#include <vector>
int main() {
std::vector<int> v = {1, 2, 3, 4, 5};
// 删除第二个元素
auto it = v.begin() + 1;
v.erase(it);
// 输出修改后的vector
for (int i : v) {
std::cout << i << " ";
}
return 0;
}
```
**代码逻辑逐行解读:**
* 创建一个包含5个元素的vector。
* 获取第二个元素的迭代器。
* 使用erase(iterator)函数删除第二个元素。
* 迭代输出修改后的vector。
#### 2.1.2 erase(iterator, iterator)
erase(iterator, iterator)函数删除指定迭代器范围内的所有元素。该函数返回一个新的迭代器,指向被删除元素之后的元素。
```cpp
#include <vector>
int main() {
std::vector<int> v = {1, 2, 3, 4, 5};
// 删除第二个到第四个元素
auto it1 = v.begin() + 1;
auto it2 = v.begin() + 4;
v.erase(it1, it2);
// 输出修改后的vector
for (int i : v) {
std::cout << i << " ";
}
return 0;
}
```
**代码逻辑逐行解读:**
* 创建一个包含5个元素的vector。
* 获取第二个元素和第四个元素
0
0