map 是基于红黑树的有序关联容器,键唯一且自动升序;支持 operator[]、insert()、emplace() 插入;查找推荐用 find(),避免 operator[] 意外插入;删除用 erase();遍历用范围 for 循环。
map 是 C++ 标准库中常用的关联容器,底层通常基于红黑树实现,自动按键(key)升序排序,支持高效查找、插入和删除,时间复杂度均为 O(log n)。它存储的是键值对(key-value pairs),且每个键唯一。
有多种方式向 map 插入元素,常用方法包括:
myMap["apple"] = 5; —— 若 "apple" 不存在,插入 {"apple", 5};若已存在,则将 value 改为 5。auto ret
= myMap.insert({"banana", 3});,ret.second 为 true 表示新插入,false 表示键已存在。myMap.emplace("cherry", 7);
查找操作不改变容器,主要有以下几种方式:
std::out_of_range 异常,适合需要严格校验的场景。int count = myMap.at("apple");
end()。auto it = myMap.find("apple"); if (it != myMap.end()) { cout second; }
删除操作通过 erase() 完成,有三种重载形式:
立即学习“C++免费学习笔记(深入)”;
map 支持基于范围的 for 循环:
for (const auto& kv : myMap) { cout
注意点:
比较(默认用 std::less),自定义类需重载 operator 或提供比较函数。