C++ set自定义排序规则(nyist 8)
C++的容器大多数都是自动排序的,所以你使用这些容器时,你加入的元素类型必须是可以比较大小的,如果不是,则需要自定义排序规则,例如你自定义的结构体:
#include <iostream>
#include <set>
using namespace std;
struct ju
{
int id,x,y;
bool operator <(const ju &a)const //排序并且去重复
{
if(id==a.id)
{
if(x==a.x) return y<a.y;
else return x<a.x;
}
else return id<a.id;
}
}tt;
set<ju> my;
set<ju> ::iterator it;
int main(int argc, char *argv[])
{
int t,n,i,j;
cin>>t;
while(t--)
{
cin>>n; my.clear();
for(i=0;i<n;i++)
{
cin>>tt.id>>tt.x>>tt.y;
if(tt.x<tt.y) swap(tt.x,tt.y);
my.insert(tt);
}
for(it=my.begin();it!=my.end();it++)
cout<<(*it).id<<" "<<(*it).x<<" "<<(*it).y<<endl;
}
return 0;
}
C++ set自定义排序规则(nyist 8)的更多相关文章
- Extjs header column 自定义排序规则
Extjs 的表格自带排序功能,这个功能在大部分情况下能够满足我们的需求,但是在某种情况下,例如IP排序,默认情况下,按照字符串进行排序, 此时我们需要自定义排序规则,这个时候就需要我们重写方法了, ...
- Cognos开发自定义排序规则的报表和自定义排名报表
场景:有一个简单的销售数据分析,可以按照日期,按照商品类型来分析订单笔数和订单金额. 目的:用户可以自定义查看按照不同指标排序的数据,用户可以查看按照不同指标排名的前N名数据 一:功能及效果展示 效果 ...
- java编程排序之内置引用类型的排序规则实现,和自定义规则实现+冒泡排序运用
第一种排序:[冒泡排序]基本数据类型的排序. [1]最简易的冒泡排序.效率低.因为比较的次数和趟数最多. /** * 最原始的冒泡排序. * 效率低. * 因为趟数和次数最多.都是按最大化的循环次数进 ...
- 【Java】Treeset实现自定义排序
两个类,一个学生类,含姓名和出生日期两个属性:还有一个学生排序类,重写compare函数,自定义排序规则是先比较出生日期,如果相同再比较姓名字母 package birthday; import ja ...
- Comparator与Comparable,自定义排序和类比较器,TreeSet对象排序
/** * 学生类 * @author Administrator * */ public class Student { private String sno ; private String sn ...
- map的默认排序和自定义排序
STL的容器map为我们处理有序key-value形式数据提供了非常大的便利,由于内部红黑树结构的存储,查找的时间复杂度为O(log2N). 一般而言,使用map的时候直接采取map<typen ...
- Hadoop学习之路(7)MapReduce自定义排序
本文测试文本: tom 20 8000 nancy 22 8000 ketty 22 9000 stone 19 10000 green 19 11000 white 39 29000 socrate ...
- Python自定义排序及我实际遇到的一些题目实例
写在前面,本文主要介绍Python基础排序和自定义排序的一些规则,如果都比较熟悉,可以直接翻到第三节,看下实际的笔试面试题中关于自定义排序的应用. 一.基础排序 排序是比较基础的算法,与很多语言一样, ...
- 【转载】C#中自定义Sort的排序规则IComparable接口
C#中的List集合在排序的时候,如果不使用Lambda表达式进行排序的话,一般调用Sort()方法进行排序,如果希望Sort()方法排序后的结果跟我们预想的效果一致或者按照我们自定义的规则排序,则需 ...
随机推荐
- 动态规划:状压DP-斯坦纳树
最小生成树是最小斯坦纳树的一种特殊情况 最小生成树是在给定的点集和边中寻求最短网络使所有点连通 而最小斯坦纳树允许在给定点外增加额外的点,使生成的最短网络开销最小 BZOJ2595 题意是给定一个棋盘 ...
- idea控制台中文乱码问题解决办法
解决办法: 打开Intellij的安装的bin目录(D:\Program Files\JetBrains\IntelliJ IDEA 14.0\bin ),找到上图的两个文件(根据你的系统是32位或6 ...
- 【poj3734】矩阵乘法
题解: 若当前有i个格子.2个是偶数的方案数为a[i]1个是偶数的方案数为b[i]0个是偶数的方案数为c[i] a[i+1]=2*a[i](i+1染成黄或蓝)+b[i](把奇数变为偶数)b[i+1]= ...
- python 匿名函数和递归函数
匿名函数lambda 匿名函数:lambda x,y:x+y 上述解释:x,y分别是函数的参数,x+y是函数的返回值 匿名函数的命名规则,用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数 ...
- Linux kernel中断子系统之(五):驱动申请中断API【转】
转自:http://www.wowotech.net/linux_kenrel/request_threaded_irq.html 一.前言 本文主要的议题是作为一个普通的驱动工程师,在撰写自己负责的 ...
- chromium源代码下载(Win7x64+VS2013sp2, 39.0.2132.2)
chromium源代码下载(Win7x64+VS2013sp2, 39.0.2132.2) http://www.aichengxu.com/diannao/1000251.htm 前后折腾了四天,当 ...
- Map占用内存大小评估
public class test { private static java.util.HashMap<String, String> needQueryResProductList = ...
- 实例解析嵌套的JSON格式数据
关于JSON数据格式的基本知识和概念,参看: http://www.cnblogs.com/zouzf/archive/2012/03/31/2426646.html <span style=& ...
- 【hdoj_1009】FatMouse's Trade
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1009< 本题用到贪心策略和结构体排序. 问题简化:现有资本M,N个房间,第i个房间对应着价格为F[i ...
- Mysql中使用存储过程返回查询多个表的数据信息
-- 测试手机号 call P_Base_CheckLogin('); -- 测试登录名 call P_Base_CheckLogin('sch000001') -- 测试身份证号 call P_Ba ...