STL map是C++标准库中的容器,它是一种关联容器,也就是说,它的元素是按照键值来存储的。STL map以键值对的形式来存储数据,每个键对应一个值。map中的每个元素都是一个pair对象,pair第一个元素为键,第二个元素为值。
map内部使用红黑树数据结构来实现,这种数据结构具有自动排序的功能,map中的元素总是按照键值升序排列。
可以使用迭代器访问map中的元素,也可以使用下标操作符来访问元素。map还提供了许多其他的操作方法。
创建一个map对象和访问其中的元素:
#include <iostream>
#include <map>int main() {std::map<std::string, int> myMap; // 创建一个map对象myMap.insert(std::make_pair("Alice", 18)); // 插入元素myMap.insert(std::make_pair("Bob", 20));myMap.insert(std::make_pair("Charlie", 22));std::cout << "Alice's age: " << myMap["Alice"] << std::endl; // 使用下标操作符访问元素std::cout << "Bob's age: " << myMap.at("Bob") << std::endl; // 使用at方法访问元素for(auto it = myMap.begin(); it != myMap.end(); ++it) { // 使用迭代器遍历mapstd::cout << it->first << ": " << it->second << std::endl;}return 0;
}
输出结果:
Alice's age: 18
Bob's age: 20
Alice: 18
Bob: 20
Charlie: 22