std::map.ceconed
时间: 2025-02-12 20:19:31 浏览: 31
### C++ `std::map` 容器的使用及其成员函数
#### 创建和初始化 `std::map`
`std::map` 是关联容器,它保存由键值和映射到该键的值组成的元素对。每个键都唯一标识单个值。
```cpp
#include <iostream>
#include <map>
int main() {
std::map<int, int> myMap;
// 插入元素
myMap.insert(std::make_pair(1, 20));
myMap.emplace(2, 30);
}
```
上述代码展示了如何创建一个整数类型的键和值的地图并插入一些初始项[^1]。
#### 访问元素
可以通过下标运算符访问已存在的键对应的值;对于不存在的键,则会在地图中新增一项,默认构造其值部分:
```cpp
// 假设myMap已经定义好
if(myMap.find(key) != myMap.end()) {
value_type val = (*it).second;
} else {
// 键key不在map中
}
// 或者更简洁的方式
auto it = myMap.find(key);
value_type val = (it!=myMap.end()) ? it->second : default_value;
```
这里提供了两种方法来安全地获取指定键所对应的数据。
#### 遍历 `std::map`
遍历整个 map 可以通过迭代器完成:
```cpp
for(const auto& pair : myMap){
std::cout << "Key: " << pair.first << ", Value:" << pair.second << '\n';
}
```
这段代码片段说明了怎样利用范围 for 循环打印出所有的 key-value 对。
#### 成员函数概述
- **insert**: 向容器添加新元素。
- **erase**: 删除某个位置处或给定范围内以及满足一定条件的所有元素。
- **find**: 查找具有特定键的元素的位置。
- **count**: 返回匹配特定键的数量(通常为0或1因为键是唯一的)。
- **clear**: 清除所有元素。
- **size**: 获取当前大小。
- **empty**: 判断是否为空。
这些基本操作构成了处理 `std::map` 所需的主要工具集。
阅读全文
相关推荐

















