#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;
}