c++中map容器自定义元素比较规则的几种实现

本文介绍了C++中map容器的基本概念,包括其排序特性、基本数据类型的排序方式,以及如何为自定义类型定义排序规则。通过less/greater结构体或自定义比较器实现自定义类型的key排序。
摘要由CSDN通过智能技术生成

c++中map容器自定义元素比较规则的几种实现

一、map/multimap基本概念

  1. map的特性是,所有元素都会根据元素的键值自动排序。
  2. map所有的元素都是pair,同时拥有键(key)和值(element),pair的第一元素被视为键值,第二元素被视为值
  3. map不允许两个元素有相同的键值
  4. multimap和map的操作类似,唯一区别multimap键值可重复。
  5. map和multimap都是以红黑树为底层实现机制。

二、基本数据类型作为(键)key时的排序

  1. 使用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(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值