c++ map sort by value and sort by key(字典的遍历)_c++ sort by key_hitwlh的博客-程序员宅基地

技术标签: c++ stl实例  

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <math.h>
#include <queue>
#include <stack>
#include <map>
#define INF 123123123
#define MAX_INDEX 150
using namespace std;




struct node
{
    int a1,a2;
    bool operator < (const node &other) const
    {
        if ((a1<other.a1)
                ||(a1==other.a1 && a2<other.a2)
           )
        {
            return true;
        }
        return false;
    }
};
int cmp(const pair<node,int> &x,const pair<node,int> &y)
{
    return x.second < y.second;
}


void sortMapbyValue(map<node,int> &t_map,vector< pair<node,int> > &t_vec)
{
    for(map<node,int>::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);
}


int main()
{
    map<node,int> m_result;
    vector< pair<node,int> > v_result;
    node temp;
    temp.a1 = 1;
    temp.a2 = 2;
    m_result[temp] = 1;


    temp.a1 = 2;
    temp.a2 = 3;
    m_result[temp] = 4;


    temp.a1 = 1;
    temp.a2 = 3;
    m_result[temp] = 10;


    cout<<"sort by key :"<<endl<<endl;
    for(map<node,int>::iterator iter = m_result.begin(); iter != m_result.end(); iter++)
    {
        printf("m_result<%d,%d>=%d\n",iter->first.a1,iter->first.a2,iter->second);
    }


    sortMapbyValue(m_result,v_result);


    cout<<"sort by value :"<<endl<<endl;
    for(int i=0; i<v_result.size(); i++)
    {
        cout << "m_result<" << v_result[i].first.a1 << "," << v_result[i].first.a2 << ">=" << v_result[i].second << endl;
    }


}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hitwlh/article/details/48141631

智能推荐

Java为什么不能在方法内定义静态变量_静态变量不能定义在普通方法_jiangkun0331的博客-程序员宅基地

1.由于JAVA规定,方法内定义的都是局部临时变量,且由于内存分配,会创建一个栈帧保存局部变量表、操作数栈,动态链栈等,在方法结束后,栈帧会出栈并释放掉所有局部变量。这个时候定义一个静态变量那会不会造成内存泄漏呢?会的,由于静态变量生命周期同类的对象一致。因此不能。2.在人性化的设计中,静态变量大都用来供外界访问或类中各个方法共享。你在一个方法中定义了一个静态变量,那对于其他方法来说,前者内部是不可见的。且对于外界来说同样也是不可见的。这样便毫无意义。...

Axure制作水泡导航_weixin_57765394的博客-程序员宅基地

今天教大家用Axure做水泡导航首先我们从元件库中拖五个矩形把它们的长设成120,高设成50颜色我们填充一个黑色然后双击矩形分别输入1.2.3.4.5然后我们在拖一个矩形出来长设为100,宽设为40颜色设为白色,不透明度调为50%,再给它拉一个圆角我们再拉一个矩形出来长设为120,宽设为50不透明度设置为0%把它跟刚才的白色矩形中心对齐然后再把它们设成一个组我们再把这个组跟一号矩形对齐我们单击一下1号矩形然后在旁边的交互栏里

k8s基于Ingress-nginx实现灰度发布_韩先超的博客-程序员宅基地

微信公众号搜索 DevOps和k8s全栈技术 ,即可关注公众号,也可扫描文章最后的二维码关注公众号,每天会分享技术文章供大家阅读参考哈~前言Ingress-Nginx是一个K8S ing...

Nginx 学习笔记(一)如何配置一个安全的HTTPS网站服务器_Tinywan的博客-程序员宅基地

一、系统环境1、系统:Ubuntu 16.04.2 LTS2、WEB服务器:Openresty11.2.5二、开始配置1、获取certbot客户端wget https://dl.eff.org/certbot-autochmod a+x certbot-auto2、停止Nginx服务sudo systemctl stop nginx.service3、生成证书...

java shapefile 中文乱码_java - 为什么我会编码错误,geotools创建shapefile中文setAttribute错误 - 堆栈内存溢出..._申晨煜的博客-程序员宅基地

tb.add("图斑编码", String.class);feature.setAttribute("图斑编码", polygon.getCode());Exception in thread "main" org.geotools.feature.IllegalAttributeException:Unknown attribute 图斑编码:null value:nullat org.geot...

解决elasticsearch集群Unassigned Shards无法reroute的问题_/_cluster/reroute_冬天里的懒猫的博客-程序员宅基地

1.背景&amp;问题描述接上篇文章https://blog.csdn.net/dhaibo1986/article/details/107564968在上一篇文章中,由于系统宕机,导致大量索引出现了Unassigned 状态。在上一篇文章中,我们通过reroute API进行了操作,对主分片缺失的索引,经过上述操作之后,分配了主分片。但是在接下来的操作中,对于副本分片,reroute出错!如下是索引 alarm-2017.08.12,第0个分片的副本没有分配:下面执行语句: POST /_c

随便推点

Android里的动画(补间动画,帧动画,属性动画)_路很长oO的博客-程序员宅基地

Android动画的学习常见的动画分为:-补间动画 -帧动画 - 属性动画学完这个分享自己项目一个简单的动画:转场动画:这个是谷歌提供的样式!下面自己模仿了一下。 模仿谷歌设计来自己做了一个。 一补间动画: 对于学过flash动画的人来说补间动画很好理解的,因为动画开始和结尾的中间过程都是假象,是渲染出来的表象,只是显示的位置变动,View的实际位置...

goLang简单聊天室_SineyCoder的博客-程序员宅基地

有一段时间没写博客了,现在因为工作需要学习了go,做一个小Demo,简单的聊天室。首先服务端开启监听8889端口,监听每一个客户端。 客户端需要先登录,登录成功后,服务端会发送给每一个客户端一个消息,XXX用户登陆成功,目前程序还没写完全,后续会不断更新~~message.go:首先需要一个消息传送的protocol,因为是基于TCP协议,传输过程中会有粘包和拆包问题,因此定义一个协议来保证数据完整性。package messageconst ( LoginMesType =.

helm 安装 mysql 相关注意事项及记录_gs80140的博客-程序员宅基地

配置持久化到nfs参考https://blog.csdn.net/gs80140/article/details/93199622mysql默认配置是写到外面的/var/lib/mysql目录,所以这里面不改配置的情况下,把外面的/var/lib/mysql目录建好,并mount到nfs上 initContainers: - name: "remove...

C语言判断一串字符包含多少个数字大写字母和小写字母_c语言判断一句话有几个字母_我的水卡丢了的博客-程序员宅基地

#include&lt;stdio.h&gt;int main (){ char d; int a,b,c; printf("请输入一串字符以#结束\n"); scanf("%c",&amp;d); while(d!= '#') { if(d&gt;='a'&amp;&amp;d&lt;='z'); a++;//小写字母 if(d&gt;='A'&amp;&amp;d&lt;='Z') b++;//大写字母 if(d&gt;='0'&amp;&amp;d.

Thawte和Comodo代码签名证书的区别_ssldun证书的博客-程序员宅基地

各个品牌因为成立时间或者成本等问题都各有特色,每个品牌都有自己的优势,今天ssl盾小编就带大家了解一下Thawte和comodo的代码签名证书。代码签名证书主要是用于将要发行在网络上的软件程序,一方面可以追查每个软件的的发行者身份,另一方面代码签名证书可以保护发行软件的真实性和完整性,避免软件受到恶意篡改,携带不法信息。一般在下载软件时电脑的系统会提示我们软件的安全性,而很多没有用代码签名证书签发过的软件会被系统当成危险提示不能下载,这很不利于软件的发行。Comodo的代码签名证书与Thawte

安卓设置夜间模式和正常模式_大城小小爱的博客-程序员宅基地

修改theme:name="DayTheme" parent="Theme.AppCompat.Light.DarkActionBar"> name="colorPrimary">@color/colorPrimary name="colorPrimaryDark">@color/colorPrimaryDark name="colorAccent">@c

推荐文章

热门文章

相关标签