如何使用MAP使用自定的KEY排序

本文介绍了一个使用C++标准模板库(STL)中的map容器,并自定义比较函数来实现元素按特定结构体成员排序的例子。通过定义结构体`AAA`及比较器`iter`,演示了如何将不同`AAA`实例插入到map中并按其成员变量`aaa`进行降序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码摘自优快云,可能用在项目中.


  1. #include<iostream>   
  2.   #include<map>   
  3.   #include<iterator>      
  4.   #include<windows.h>   
  5.   using   namespace   std;      
  6.   struct   AAA      
  7.   {      
  8.       DWORD   aaa;   
  9.       int   bbb;   
  10.       AAA(DWORD   a,int   b):aaa(a),bbb(b){};   
  11.   };      
  12.   struct   iter      
  13.   {      
  14.   bool   operator()(const   AAA*s1,const   AAA*s2)      
  15.   {      
  16.   return   s1->aaa>s2->aaa;   
  17.   }      
  18.   };      
  19.   int   main()      
  20.   {   
  21.   map<AAA*,int,iter>temp;   
  22.   temp.insert(make_pair(&AAA(1,1),1));   
  23.           temp.insert(make_pair(&AAA(2,2),2));   
  24.   temp.insert(make_pair(&AAA(3,3),3));   
  25.   temp.insert(make_pair(&AAA(4,4),4));   
  26.   temp.insert(make_pair(&AAA(5,5),5));   
  27.           map<AAA*,int,iter>::iterator   it=temp.begin();   
  28.   while(it!=temp.end())   
  29.   {   
  30.   cout<<it->first->aaa<<"   "<<it->first->bbb<<"   "<<it->second<<endl;   
  31.   it++;   
  32.   }   
  33.   int i;   
  34.   cin >> i;   
  35.   return   0;   
  36.   }   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值