1.介绍
map是 C++ 标准模板库(STL)中的一个关联容器,用于存储键值对(key-value pairs)。map中的元素是按照键(key)进行排序的,并且每个键在容器中是唯一的。map通常基于红黑树(一种自平衡二叉查找树)实现,因此插入、删除和查找操作的时间复杂度为 O(log n)。
2.map用法
(1)定义于初始化
std::map<KeyType, ValueType> myMap;
例如:
std::map<int, std::string> myMap;
std::map<int, std::string> myMap = {
{1, "apple"},
{2, "banana"},
{3, "cherry"}
};
(2)插入元素
myMap.insert(std::make_pair(4, "date"));
myMap[5] = "elderberry";
(3)访问元素
std::string fruit = myMap[1]; // 访问键为 1 的值
std::string fruit2 = myMap.at(2); // 访问键为 2 的值
(4)删除元素
myMap.erase(3); // 删除键为 3 的元素
(5)查找元素
auto it = myMap.find(2);
if (it != myMap.end()) {
std::cout << "Found: " << it->second << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
(6)遍历元素
//迭代器
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << it->first << ": " << it->second << std::endl;
}
//范围for循环
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
(7)其他常用操作
-
size()
:返回map
中元素的数量。 -
empty()
:检查map
是否为空。 -
clear()
:清空map
中的所有元素。
3.总结
map是一个非常有用的容器,适用于需要根据键快速查找、插入和删除元素的场景。由于它是有序的,因此在需要按顺序处理键值对时也非常方便。
如有错误,敬请指正!!!