c++erase函数
时间: 2024-08-13 14:06:58 浏览: 91
在C++中,`erase`函数是标准库容器(如`std::vector`、`std::list`、`std::map`等)中用于删除特定元素的关键成员函数。这个函数根据提供的参数,从容器中移除指定的元素或满足特定条件的元素。
1. 对于`std::vector`,`erase`接受一个迭代器作为参数,表示要删除的元素的位置。例如:
```cpp
std::vector<int> v = {1, 2, 3, 4, 5};
v.erase(v.begin() + 2); // 删除索引为2的元素(第三个元素),此时v为{1, 2, 4, 5}
```
2. 对于关联容器如`std::map`和`std::unordered_map`,`erase`接受一个键值对或一个迭代器,用于删除具有指定键或迭代器所指向元素的项:
```cpp
std::map<int, std::string> m = { {1, "one"}, {2, "two"} };
m.erase(1); // 删除键为1的项,此时m为{2, "two"}
```
3. 如果你想删除范围内的所有元素,可以使用`erase`与`begin()`和`end()`配合:
```cpp
v.erase(v.begin(), v.begin() + 2); // 删除从第一个到第二个元素(不包括第二个)
```
相关问题--
1. `erase`函数是否返回被删除的元素数量?
2. 如果试图删除不存在的元素,`erase`会怎么样?
3. 在删除元素后,原迭代器是否仍有效?
阅读全文