[TOC]
1. map
std::map 是有序键值对容器,它的元素的键是唯一的。用比较函数 Compare 排序键。搜索、移除和插入操作拥有对数复杂度。 map 通常实现为红黑树。
1.1. 初始化
1.2. 查找
方法一
std::map<T,V> m1;
T key;
...
if(m1.find(key) != m1.end){
//找到了
map[key];//才能访问
}
1.3. 插入
方法一 数组 :形如map[key]=value;
//map[key] = value
map<int,string> mis;
mis[0] = "first";
mis[1] = "second";
mis[2] = "third";
方法二 pair:形如insert(pair
//make_pair
map<int,string> mis2(mis.begin(),mis.end());
mis.insert(pair<int, string>(3, "fourth"));
方法三 make_pair:形如insert(make_pair(key, value));
mapStudent.insert(make_pair(1, "student_one"));
方法四 value_type:形如insert(map
//value_type
mis.insert(map<int, string>::value_type(3, "fourth"));
for (auto& pair : mis){
cout << pair.first << ":" << pair.second.c_str() << endl;
}
1.4. 删除
1.4.1. 删除所有
方法一
cmap.erase(cmap.begin(), cmap.end());
方法二
cmap.clear();
2. map常见问题
2.1. 1.map[]和find区别
map[]方式访问如果没有对象,便会创建。
find(key)== map.end() 表示没有键值,用于判空。