c++中map容器自定义元素比较规则的几种实现
一、map/multimap基本概念
- map的特性是,所有元素都会根据元素的键值自动排序。
- map所有的元素都是pair,同时拥有键(key)和值(element),pair的第一元素被视为键值,第二元素被视为值
- map不允许两个元素有相同的键值
- multimap和map的操作类似,唯一区别multimap键值可重复。
- map和multimap都是以红黑树为底层实现机制。
二、基本数据类型作为(键)key时的排序
-
使用less或者greater结构体进行排序
-
/* map的默认比较器 */ void test2() { //调用默认比较器 按照从大到小顺序排列 //map<int, string,greater<int> > *pMap = new map<int, string,greater<int> >(); //从小到大顺序排列 map<int, string, less<int> > *pMap = new map<int, string, less<int> >(); //插入方法1 pMap->insert(make_pair(1, "jack")); //插入方法2 pMap->insert(pair<int, string>(5, "ben")); //插入方法3 pMap->insert(
-