map容器是一个键值对key-value的映射。其内部实现是一棵以key为关键码的红黑树(平衡树的一种)。map的key和value可以是任意的数据类型(包括int、double、long long、string、struct、vector、queue等等)。这里不对map的原理进行深入研究,只研究它的一些简单应用(复杂的不会qwq)。
1.map的声明方法:①.map数据结构包含在<map>的头文件中
②.map的定义方式:map的定义方式为“map<key_type,value_type> name”,其中key_type表示的是被映射的数据类型,相当于自变量x的数据类型;value_type表示的是映射到的数据类型,相当于因变量y,name则表示映射名。
举例:
map<long long,bool> vis;
定义了一个将long long类型数据映射到bool类型上的映射map;
map<string,int> hash;
定义了一个将string类型数据映射到int类型上的映射hash;
这里的hash表示哈希,是一种常见的解决查找字符串问题的方法,其原理便是将字符串映射为一个数字。
map< pair<int,int>, vector<int> > test;
将一个pair二元组映射到一个动态数组vector上。
2.map的操作:
①. size/empty/clear:
分别表示查询一个映射的元素个数、是否为空、清空。
②.[ ]操作符:
h[key]返回映射h中的自变量key映射到的value的值。
好处:可以通过h[key]的操作来查询k映射到的value的值并进行修改(这样可以避免枚举耗时)。
原文:https://www.cnblogs.com/qianr/p/13272819.html