#include
#include
#include
运行结果为:
count key[3], num: 1
count key[9], num: 0
4
aaaaaaa
0
1
[]运算符:
#include
#include
#include
运算结果为:
imap[1] = 1
smap[1] = hello
imap[2] = 0
smap[2] =
#include
#include
#include
运算结果为:
100
-1
结果分析:下标运算符可以在map中取得key对应的value,如果key不存在,会返回一个对应类型的默认值。
#include
#include
运行结果为:
1, 0
分析:如果以key为键的元素并不在map中的话, [key]会导致在map中自动插入一个元素
find函数使用
#include
#include
#include
运行结果为:
iter->first: 1, iter->second: 1
iter end
分析: find返回一个迭代器, 它指向查找的key对应的元素,如果key不存在,则返回map.end()
at函数
#include
#include
#include
分析:at的用法和[]类似,不过[]访问不存在的key会返回类型空值,at则会程序崩溃
swap方法:
#include
#include
#include
运行结果为:
iter->first: 3, iter->second: 3
iter->first: 4, iter->second: 4
iter->first: 1, iter->second: 1
iter->first: 2, iter->second: 2
分析:swap可以对调两个map中的内容,但是有一个前提,就是两个map必须使用相同的模板类实例,上面程序如果map
imap2编译会出错,swap返回值为void
map的初始化和赋值
map imap1;
map imap2(imap1);
map imap3(imap2.begin(), imap2.end());
map imap4 = imap1;
map imap5;
imap5 = imap1;
map imap6({ pair(1, 1), pair(2, 2) }); //initializer_list方式初始化
排序:
#include
#include
#include
运行结果如下:
a: 19
b: 12
c: 10
a: 19
b: 12
c: 10
c: 10
b: 12
a: 19