std::map中的erase
时间: 2023-10-14 11:20:26 浏览: 49
std::map::erase() 是 C++ STL 中用于删除 std::map 中的元素的函数。它有多个重载形式,可以根据不同的参数来删除元素。
std::map::erase() 的常用参数有:
- key:删除指定 key 对应的元素。
- position:删除迭代器 position 指向的元素。
- first, last:删除[first, last) 范围内的元素。
下面是一个示例代码,演示如何使用 std::map::erase() 删除元素:
```c++
#include <iostream>
#include <map>
int main() {
std::map<int, char> my_map = {{1, 'a'}, {2, 'b'}, {3, 'c'}, {4, 'd'}};
// 删除指定 key 的元素
my_map.erase(3);
// 删除迭代器指向的元素
auto it = my_map.find(2);
my_map.erase(it);
// 删除[first, last) 范围内的元素
my_map.erase(my_map.begin(), my_map.end());
return 0;
}
```
在上面的代码中,我们首先创建了一个 std::map 对象 my_map,然后使用 std::map::erase() 删除了不同的元素。最后,我们清空了整个 std::map。
相关问题
std::unordered_map
std::unordered_map是C++标准库中的一个关联容器,它可以存储一组键值对,并且支持快速的查找、插入和删除操作。
以下是一个使用std::unordered_map的示例代码:
```cpp
#include <unordered_map>
#include <iostream>
int main() {
std::unordered_map<int, std::string> umap;
// 插入键值对
umap.insert(std::make_pair(1, "apple"));
umap.insert(std::make_pair(2, "banana"));
umap.insert(std::make_pair(3, "orange"));
// 查找键值对
int key = 2;
auto it = umap.find(key);
if (it != umap.end()) {
std::cout << "Key " << key << " found, value is " << it->second << std::endl;
} else {
std::cout << "Key " << key << " not found" << std::endl;
}
// 删除键值对
umap.erase(3);
// 遍历键值对
for (const auto& pair : umap) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
return 0;
}
```
这段代码创建了一个std::unordered_map对象umap,插入了三个键值对,然后通过find函数查找指定的键值对,最后删除了一个键值对,并遍历输出了所有的键值对。
std::map 函数
std::map 是 C++ 标准模板库(STL)中的一个容器类,它提供了一种关联数组的数据结构,可以按照键值对存储和访问数据。std::map 使用红黑树实现,它的特点是按照键的有序性进行存储和访问,每个键只能在 std::map 中存在唯一的副本。
std::map 提供了一系列函数来操作和访问容器中的元素,包括插入、删除、查找等。以下是一些常用的函数:
- insert(key, value):向 std::map 中插入一个键值对。
- erase(key):从 std::map 中删除指定键的元素。
- find(key):在 std::map 中查找指定键对应的元素,返回一个迭代器。
- count(key):统计 std::map 中指定键的元素个数。
- size():返回 std::map 中元素的个数。
- empty():检查 std::map 是否为空。
- clear():清空 std::map 中的所有元素。
除了以上函数外,std::map 还提供了迭代器用于遍历容器中的元素,可以使用迭代器的方式访问和修改元素的值。
请注意,std::map 的键类型必须支持严格的弱序关系,通常情况下会使用基本数据类型或自定义的数据类型作为键。此外,std::map 中的元素是按照键的升序排列的。
以上就是 std::map 的一些常用函数和特点。希望能对你有所帮助!如果还有其他问题,请随时提问。