您的位置:首页 > 其它

STL:map与multimap

2018-04-04 01:11 281 查看
关联容器
map:映射
multimap:多重映射
底层存储结构:红黑树(自平衡的二叉查找树)所以map内部数据都是有序的。默认是通过key值进行排序。默认遍历方式是中序遍历。
map的构造和初始化:
map<int,string> mapStudent;
map的数据插入:
1、insert插入:mapStudent.insert(pair<int,string>(1,"zhanglei"));
2、通过下标直接赋值: mapStudent[2] = "hanmeimei";
以上两种方式,当map中key重复时,第一种方式会无法插入,第二种方式会覆盖之前的值。
map的遍历:迭代器
map的大小: mapStudent.size();
map的查找:
mapStudent.find(1);返回值是一个迭代器,指向要找的元素。否则返回end();
map的清空:
mapStudent.clear();
map的删除:
mapStudent.erase(iter);   通过迭代器删除
mapStudent.erase(1);  通过key删除
mapStudent.erase(mapStudent.begin() , mapStudent.end()):通过范围删除
erase的返回值为void,不会返回下个元素的迭代器,所以在遍历删除中需要使用自增运算,指向下个元素以后再执行删除操作。
遍历删除的用法:
for(map<int,int>::iterator it = mapInt.begin(); it != mapInt.end();)
{
if(it->second == 0) {
mapInt.erase(it++); }
else {
it++;
}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: