在 C++ 中,std::map
是一个关联容器,它以键-值对的形式存储数据,并且键是唯一的且按升序自动排序。以下是一些常见的 std::map
操作:
1. 创建和初始化 map
#include <iostream>
#include <map>
int main() {
// 使用列表初始化
std::map<int, std::string> myMap = {
{1, "one"},
{2, "two"},
{3, "three"}
};
// 输出 map 内容
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
2. 插入元素
可以使用 insert
方法或 []
操作符插入元素:
std::map<int, std::string> myMap;
myMap.insert({1, "one"});
myMap[2] = "two"; // 如果键2不存在,则创建并插入键值对
3. 访问元素
可以使用 []
操作符或 at
方法:
std::cout << myMap[1] << std::endl; // 输出 "one"
std::cout << myMap.at(2) << std::endl; // 输出 "two"
注意:
at
方法会在键不存在时抛出异常,而[]
操作符会插入一个默认值。
4. 查找元素
使用 find
方法查找元素:
auto it = myMap.find(2);
if (it != myMap.end()) {
std::cout << "Found: " << it->first << " => " << it->second << std::endl;
} else {
std::cout << "Key not found" << std::endl;
}
5. 删除元素
使用 erase
方法删除元素:
myMap.erase(2); // 删除键为 2 的元素
myMap.erase(myMap.begin()); // 删除第一个元素
myMap.clear(); // 清空整个 map
6. 获取大小
std::cout << "Size: " << myMap.size() << std::endl;
7. 遍历 map
可以使用 for
循环遍历 map
:
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
8. 检查是否为空
if (myMap.empty()) {
std::cout << "Map is empty" << std::endl;
}
9. 使用 count
检查键是否存在
if (myMap.count(1) > 0) {
std::cout << "Key 1 exists" << std::endl;
}
这些是 std::map
的基本操作。通过使用这些操作,你可以方便地管理和操作键值对数据。