C++:STL------map
1.about
map容器是一个键值对 key-value 的映射。其内部实现是一棵以 key 为关键码的红黑树。map的 key 和 value 可以是任意类型,其中 key 必须定义“小于号”运算符。
在很多时候, map容器被当作Hash表使用,建立从复杂信息 key (如字符串)到简单信息 value (如一定范围内的整数)的映射。
因为map基于平衡树实现,所以它的大部分操作的时间复杂度都在 O(logn) 级别,略慢于使用Hash函数实现的传统Hash表。从C++11开始,STL中新增了unordered_map等基于Hash函数实现的传统Hash表。
2.声明和初始化
#include <map> //头文件
map<key_type, value_type> name;
map<long long, bool> vis;
map<string, int> hash;
map< pair<int, int>, vector<int> > test;
// 初始化构造
map<int, string> map_test1; // 默认构造
map<int, string> map_test2(map_test1.begin(), map_test1.end()); // 范围构造
map<int, string> map_test3 = map_test2; // 赋值构造
map<int, string> map_test4(map_test2); //