用sort实现对struct的排序
用sort 排序 struct
+++
//method 1
struct node{
    int k,s;
}p[5005];
bool cmp1(node x,node y){
    return x.s>y.s;   //定义降序排序(从大到小)
}
bool cmp2(node x,node y){
    return x.k<y.k;   //定义升序排序(从小到大)
}sort(p+1,p+n+1,cmp2); //排序
eg:
#include<iostream>
#include<algorithm>
using namespace std;
struct b {
	int k, s;
};
bool compare(b x, b y)
{
	if (x.k != y.k)	return x.k > y.k;
	return x.s > y.s;//降序排序
}
int main()
{
	b p[5] = { {2, 4}, {2, 8}, {5, 9}, {1, 4}, {2, 5} };
	sort(p, p + 5, compare);//point
	for (auto x : p)
		cout << x.k << " " << x.s << endl;
	system("pause");
	return 0;
}
//method 2
struct b {
	int k, s;
	bool operator< (const b & t)const//实现降序排序
	{
		if (k != t.k)	return k < t.k;
		return s < t.s;
	}
};
eg:
#include<iostream>
#include<algorithm>
using namespace std;
struct b {
	int k, s;
	bool operator< (const b & t)const
	{
		if (k != t.k)	return k < t.k;
		return s < t.s;
	}
};
int main()
{
	b p[5] = { {2, 4}, {2, 8}, {5, 9}, {1, 4}, {2, 5} };
	sort(p, p + 5);//参数只需要两个迭代器,不需要第三个参数
	for (auto x : p)
		cout << x.k << " " << x.s << endl;
	system("pause");
	return 0;
}
用sort实现对struct的排序的更多相关文章
- Hadoop 实现对Value倒序排序
		数据源 A B C D Z 要实现的输出 Z D B C A 看字符顺序,其实什么也没有,只是按照后面的数字进行一次倒序排序,实现思路,1利用hadoop自带的排序功能,2.KV互换 实现代码 pub ... 
- C++中实现对map按照value值进行排序 - 菜鸟变身记 - 51CTO技术博客
		C++中实现对map按照value值进行排序 - 菜鸟变身记 - 51CTO技术博客 C++中实现对map按照value值进行排序 2012-03-15 15:32:36 标签:map 职场 休闲 排 ... 
- 使用泛型实现对int数组或者String数组进行排序
		因为是使用的泛型,我们并不确定数据类型, 对于数据的比较就不能用平时的大于或者小于. 我们需要比较对象实现Comparable接口,该接口下的compareTo()方法可以用来比大小 定义Sort类: ... 
- C#代码实现对HTTP POST参数进行排序
		private static string GetSortedParas(Dictionary<string, string> dic) { dic = dic.OrderBy(key = ... 
- 使用代理实现对C# list distinct操作
		范型在c#编程中经常使用,而经常用list 去存放实体集,因此会设计到对list的各种操作,比较常见的有对list进行排序,查找,比较,去重复.而一般的如果要对list去重复如果使用linq dist ... 
- 在应用程序中实现对NandFlash的操作
		以TC58NVG2S3ETA00 为例: 下面是它的一些物理参数: 图一 图二 图三 图四 图五 图6-0 图6-1 说明一下,在图6-1中中间的那个布局表可以看做是实际的NandFlash一页数据的 ... 
- sort+结构体实现二级排序
		之前介绍的sort函数由于其效率较高,使用较为简单让我用起来那叫一个爽,今天再写一篇使用sort+结构体实现二级排序的方法. 还是先想个问题吧,比如我想输入5个同学的名字和身高,然后得到他们身高的降序 ... 
- <algorithm>里的sort函数对结构体排序
		题目描述 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入描述: 每天的记录在第一行给出记录的条目数M (M &g ... 
- 实现对DataGird控件的绑定操作
		//实现对DataGird控件的绑定操作 function InitGrid(queryData) { $('#grid').datagrid({ //定位到Table标签,Table标签的ID是gr ... 
随机推荐
- Linux文件和目录的属性及权限总结
			本文讲述的是文件或目录的属性及权限,比如索引节点inode.文件类型.文件权限及属主:还对setuid.setgid及粘贴位进行了相关的讲解.其中,对ln.chmod.chown.chgrp.umas ... 
- 死磕mysql(4)
			想把论坛和博客上所有关于mysql的都看一遍,死磕到底 看到关于数据库快照的东西.......不懂,百度......然后就跑题了,看到了表锁这种东西unlock tables; 用来锁定表..... ... 
- winsocket入门学习
			参考资料:http://c.biancheng.net/cpp/socket/ http://www.winsocketdotnetworkprogramming.com/ socket 是" ... 
- Qt qApp
			qApp A global pointer referring to the unique application object. It is equivalent to the pointer re ... 
- 命令行压缩解压缩一 7z
			命令行压缩解压缩一 7z 1) 简介 7z,全称7-Zip, 是一款开源软件.是目前公认的压缩比例最大的压缩解压缩软件. 主页:http://www.7-zip.org/ 中文主页:http: ... 
- Shell: 定期存档日志文件
			简介 对于日志的分割删除我们一般会使用logratate,但对于项目较多的情况下,会让开发直接将日志分割写在代码里面,对于分割后过期的日志定期删除就很有必要,不然膨胀的日志会占满你的磁盘,将多余的日志 ... 
- github三步走(init;add . ;commit -m "提交说明")
			掌握以下几点就基本能满足你平时使用了.按这个顺序来1.git安装,已经好了,略 -到这里本地代码推送到远程已经结束了 2.git本地命令操作-shift+右键-git init:初始化git环境-新建 ... 
- bash通配符  shell正则表达式
			在linux中 通配符是系统命令使用,一般用来匹配文件名或者什么的用在系统命令中. 通配符是系统级别的,通配符多用在文件名上,比如查找find,ls,cp,rm 正则表达式是操作字符串,以行尾单位来匹 ... 
- Shell脚本 硬盘监控
			用shell 写了一个硬盘监控的小程序 #!/bin/bash MAX=95 EMAIL=zonghua@iyunshu.com PART=sda1 IP=`ifconfig |grep -w ... 
- Linux的那些事-系统启动(增加开机启动项)
			1 /etc/init.d 2 /etc/inittab 3 /etc/rc.d/init.d 1. /etc/init.d 是一般开机的启动服务存放在这个目录下,至于实现机制,其实 ... 
