C++map常见用法

map

C++中的map,相当于python中的dic,是键-值对的组合,map内部自建一颗红黑树,查找效率为$O(\log n)$,下面将简单介绍map的常见用法。

map的定义于初始化

1
2
3
map<T1,T2> m; #定义map,eg:map<int,int> m;
map<T1,T2> m(map1); #拷贝构造map1的副本
map<T1,T2> m(b, e); #通过迭代器拷贝构造map,eg:map<T1,T2> m(map1.begin(), map1.end())

插入元素

insert

1
2
m.insert(pair)
m.insert(value_type)

举个例子

1
2
3
4
map1.insert(pair<int, int>(1, 10));
map1.insert(make_pair(2, 20))
map1.insert(map<int, int>::value_type (3, 30));
#insert只能插入不存在元素

通过下标访问

举个例子

1
2
3
4
map<int,string> map1;
map1[40]="ZhangSan"#学号40的是张三
#在map中使用下标访问不存在的元素将导致在map容器中添加一个新的元素。
#如果元素已经存在,则原元素被覆盖。

元素的查找

count

map.count(k)将会查找key值k的个数,但是由于map中不存在重复元素,因此只会返回0和1。

find

map.find(k),返回一个指向k的迭代器,如果k不存在,则返回map.end()

map的大小

map.size(),直接用就行,很简单。

删除元素erase

1
2
3
m.erase(k) #删除键值为k的对,返回删除的个数
m.erase(p) #删除迭代器p
m.erase(b, e) #删除2个迭代器之间的元素

参考资料

本文如未明确写明转载,则:

本文标题:C++map常见用法

文章作者:微石

发布时间:2018年06月25日 - 20:06

最后更新:2018年07月19日 - 11:07

原始链接:akihoo.github.io/posts/1669902a.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。