1 基本知识
- map的特性,所有的元素根据元素的键值自动排序
- map所有的元素都是pair,同时拥有实值和键值,pair的第一个元素被视为键值,第二个元素被视为实值;
- map不允许两个元素有相同的键值;
- multimap和map的操作类似,唯一区别mutimap键值可重复
- map和multimap都是以红黑树为底层实现机制。
2 常用的API
- 构造
map<T1, T2> p;
- map的大小操作
size(); //返回容器中元素的数目
empty();
- map插入数据元素
map.insert()
map<int, string> mapStu;
//第一种 通过pair的方式插入对象
mapStu.insert(make_pair(-1,"校长"));
//第二种 通过pair方式插入对象
mapStu.insert(pair<int, string>(3, "小张"));
//第三种 通过value_type的方式插入对象
mapStu.insert(map<int, string>::value_type(1,"小李"));
//第四种 通过数组的方式插入值
mapStu[3] = "小刘";
mapStu[5] = "小王";
clear(); //删除所有的元素
erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器
erase(beg,end);//删除区间内的所有元素
erase(keyElem);//删除容器中keyElem的对组
find(key);//查找健key是否存在,返回该键的元素的迭代器,若不存在返回map.end()
count(keyElem); //返回容器中key为keyElem的对组个数,
lower_bound(keyElem);//返回第一个key<=keyElem元素的迭代器
upper_bound(keyElem);//返回第一个key>keyElem元素的迭代器
equal_range(keyElem); //返回容器key与keyElem相等的上下限的两个迭代器