#6583. 2026/5/4/环湖课堂笔记(map)
2026/5/4/环湖课堂笔记(map)
C++ STL map 课堂笔记 🗺️
📌 一、什么是 map?
- 本质:存储**键值对(key-value)**的关联式数据结构
- 类比:“高级数组”
- 数组下标:只能是 ≥0 的整数
map的键(key):可以是 多种数据类型(int、string、char 等)
💡 二、核心操作 🔧
| 操作 | 代码示例 | 说明 |
|---|---|---|
| 定义 | map<int, int> mp; |
键为 int,值为 int 的 map |
| 赋值/修改 | mp[2] = 4; |
键 2 对应的值设为 4(已存在则覆盖) |
| 获取元素个数 | mp.size(); |
返回已存的键值对数量 |
| 判断键是否存在 | mp.count(3) > 0 |
键 3 存在返回 true,否则 false |
| 清空 | mp.clear(); |
清空所有键值对 |
📝 三、遍历 map
(C++17 及以上支持)
for (auto [x, y] : mp) {
cout << x << " " << y << endl;
}
// x 是键,y 是值
⭐ 四、重要特性
- 自动排序:
map会根据键(key) 自动将键值对从小到大排序!
🚀 完整示例代码
#include<bits/stdc++.h>
using namespace std;
map<int, int> mp; // 定义键为int、值为int的map
int main(){
mp[2] = 4; // 赋值
mp[1] = 3; // 赋值(会自动按key排序)
// 遍历(输出顺序:1 3 → 2 4)
for (auto [x, y] : mp){
cout << x << " " << y << endl;
}
mp.clear(); // 清空
return 0;
}