c++写erase的用法
时间: 2023-05-13 16:05:17 浏览: 54
C语言中的erase函数并不存在,可能您想要了解的是C++中的erase函数,它是用于删除容器中指定位置或指定范围内的元素的函数。例如,可以使用vector容器的erase函数删除指定位置的元素,语法如下:
vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 2); // 删除第三个元素,即数字3
这样就可以删除vector容器中的第三个元素,即数字3。
相关问题
c++ vector erase用法大全
C++中的vector容器提供了erase()方法来删除元素。下面是一些c++ vector erase用法的示例:
1. 删除指定位置的元素[^1]:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 2); // 删除索引为2的元素
```
2. 删除指定范围的元素:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 1, vec.begin() + 4); // 删除索引为1到3的元素
```
3. 删除满足条件的元素[^2]:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end()); // 删除所有值为3的元素
```
4. 删除满足条件的元素并返回删除的元素个数:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
int count = std::count(vec.begin(), vec.end(), 3);
vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end()); // 删除所有值为3的元素
```
这些是一些常见的c++ vector erase用法。你可以根据具体的需求选择适合的方法来删除vector中的元素。
C++ MAP erase的用法
C++中的std::map的erase()函数用于删除map中的元素。它有多种用法,下面我将介绍几种常用的用法:
1. 删除指定键的元素:
```cpp
std::map<Key, Value> myMap;
// 插入一些元素到myMap中
myMap.erase(key); // 删除键为key的元素
```
通过指定键来删除对应的键值对。
2. 删除指定位置的元素:
```cpp
std::map<Key, Value> myMap;
// 插入一些元素到myMap中
auto it = myMap.find(key); // 查找指定键的迭代器
if (it != myMap.end()) {
myMap.erase(it); // 删除迭代器指向的元素
}
```
通过迭代器来删除指定位置的元素。
3. 删除指定范围的元素:
```cpp
std::map<Key, Value> myMap;
// 插入一些元素到myMap中
auto start = myMap.begin();
auto end = myMap.find(key); // 查找指定键的迭代器
if (end != myMap.end()) {
myMap.erase(start, end); // 删除指定范围内的元素
}
```
通过指定范围的迭代器来删除一段连续的元素。
4. 清空map中的所有元素:
```cpp
std::map<Key, Value> myMap;
// 插入一些元素到myMap中
myMap.clear(); // 清空map中的所有元素
```
使用clear()函数清空map中的所有元素。
注意,在使用erase()函数删除元素时,要特别注意迭代器的有效性。删除元素后,迭代器可能会失效,因此应该在删除元素后小心地更新或重新定位迭代器。
这些是std::map中erase()函数的常见用法,你可以根据具体的需求选择适合的用法。