在C++中,map
是一种关联容器,用于存储一些键值对,并按键进行排序。map
的使用方法如下:
- 包含头文件
#include <map>
- 定义
map
对象
std::map<KeyType, ValueType> myMap;
其中,KeyType
表示键的类型,ValueType
表示值的类型。
- 插入元素
可以使用insert
方法插入一个键值对:
myMap.insert(std::make_pair(key, value));
也可以使用下标运算符[]
直接插入一个键值对:
myMap[key] = value;
- 查找元素
可以使用find
方法查找指定键的元素,如果找到则返回指向该元素的迭代器,否则返回map::end()
:
auto it = myMap.find(key);
if (it != myMap.end()) {
// 找到了
} else {
// 没有找到
}
也可以使用下标运算符[]
查找指定键的元素,如果找到则返回对应的值,否则会自动插入一个默认值并返回:
ValueType value = myMap[key];
- 删除元素
可以使用erase
方法删除指定键的元素:
myMap.erase(key);
也可以使用迭代器删除指定元素:
auto it = myMap.find(key);
if (it != myMap.end()) {
myMap.erase(it);
}
- 遍历元素
可以使用迭代器遍历map
中的所有元素:
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << "key = " << it->first << ", value = " << it->second << std::endl;
}
也可以使用范围遍历语句(C++11):
for (const auto& [key, value] : myMap) {
std::cout << "key = " << key << ", value = " << value << std::endl;
}
以上就是map
的一些基本用法,需要注意的是,map
中的键值对是按键进行排序的,因此如果想要自定义排序方式,可以传入一个比较函数作为第三个参数。