STL之map和multimap

map的特性:
– 所有元素都会根据元素的键值自动排序.
– 所有的元素都是pair,同时拥有实值和键值,pair的第一元素被视为键值,第二元素被视为实值,map不允许两个元素有相同的键值.

multimap和map的操作类似,唯一区别multimap键值可重复.

map和multimap都是以红黑树为底层实现机制.

map的使用

//构造
map<T1, T2> mapTT;//map默认构造函数
map(const map &mp);//拷贝构造函数

//赋值
map& operator=(const map &mp);//重载等号操作符
swap(mp);//交换两个集合容器

//大小
size();//返回容器中元素的数目
empty();//判断容器是否为空
max_size();//容器最大数目
//迭代器
begin();//返回set容器迭代器的第一个
end();//返回set容器迭代器的最后一个
rbegin();//返回反向迭代器,以反向开始
rend();//返回反向迭代器到反向结束
cbegin();//同begin(),但属性为const
cend();//同end(),但属性为const
crbegin();//同rbegin(),但属性为const
crend();//同rend(),但属性为const

at();//访问元素
insert); //往容器插入元素,返回pair<iterator,bool>
erase(); //删除元素
swap();  //交换两个map内容
clear(); //清理map元素
emplace();//构造并插入元素
emplace_hint();//构造并插入元素附带提示
find();//获取一个元素的迭代器
count();//根据指定的键值获取元素个数