容器的数据结构同样是采用红黑树进行管理,插入的元素健位不允许重复,所使用的节点元素的比较函数,只对元素的健值进行比较,元素的各项数据可通过健值检索出来。map容器是一种关联容器,实现了SortedAssociative Container、Sorted Associative Container和Unique Associative Container概念的接口规范。
map技术原理
图中所示是map容器的一个元素的数据组成,可通过pair封装成一个结构对象。map容器所要做的,就是将这个pair对象插入到红黑树,完成一个元素的添加。同时,也要提供一个仅使用键值进行比较的函数对象,将它传递给红黑树。由此,就可利用红黑树的操作,将map元素数据插入到二叉树中的正确位置,也可以根据键值进行元素的删除和检索。
map应用基础
头文件:#include<map>
创建map对象
1)map(); //创建一个没有任何元素的map对象
2)map(constkey_compare& comp); //指定一个比较函数对象comp来创建map对象,内存分配器为默认值。
3)map(constmap&); //拷贝构造函数,用一个map容器的元素和比较函数,拷贝生成一个新的map容器对象。
4)map(InputIteratorfirst, InputIterator last); //用迭代器区间[first)