根据map中的vaule进行排序呢,注意,value为struct自定义类型
根据map中的vaule进行排序呢,注意,value为struct自定义类型
成长中的小白 发表于1年前
根据map中的vaule进行排序呢,注意,value为struct自定义类型
  • 发表于 1年前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

摘要: C++ map struct value sort

在工作中,经常需要对map中的内容进行排序,对map进行排序呢有两种情况 1 map内部本身就是按序存储的,在插入<key,value>时,就会按照key的大小顺序存储,当然key必须是能够进行大小比较运算的。map默认的排序是从小到大的,如果需要用到从大到小的顺序,那么访问的时候只需要: for(map<,>::iterator iter = m.end(); m != m.begin(); m-- ) { ....... } 即可,不需要再进行造轮子。

2 根据value排序,且value是一个struct: 上例子: typedef struct { int a; string b; } Test;

    	struct cmp
	{
		bool operator()(const pair<string,Test>  &p1, const pair<string,Test> &p2)
                    {
                        return p1.second.a > p2.second.a;        //降序   降序的话将 > 改成  <
		}
	};

       void SortMapByValue(map<string,Test> &t_map,vector< pair<string,Test> >&t_vec )
        {
             for(map<string,Test>::iterator iter = t_map.begin();iter != t_map.end(); iter++)
                {
                    t_vec.push_back(make_pair(iter->first,iter->second));
                }
                   sort(t_vec.begin(),t_vec.end();cmp);            //升序
         }

这样就实现了对map中按照value进行排序啦

标签: map C++ value sort
共有 人打赏支持
粉丝 0
博文 16
码字总数 7983
×
成长中的小白
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: