C++ set自定义排序规则(nyist 8)

摘要:
大多数C++容器都是自动排序的,因此当您使用这些容器时,添加的元素类型的大小必须相当。如果没有,则需要自定义排序规则,例如自定义结构:#include<iostream>#包括<设置>使用namespacestd;Structju{int id,x,y;booloperator<(constju&a)const//排序和重复数据消除{
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)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用MQTTBox连接MindSphere IoT Extention把nginx当完全tcp端口转发器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

PowerDesigner 15 使用技巧

1.检索PowerDesigner的调色板工具栏工具&gt;自定义大小工具栏&gt;调色板检查2。在表格工具中批量修改文本格式&gt;显示首选项&gt;选择符号中的所有项目&gt;...

oracle触发器调试

如果触发器执行成功,不会出现第4个图,不成功,会出现数据调试信息,具体报错位置会定位到。F7单步执行4.出错时,会出现调试数据,双击调试数据,可以复制出来...

(转)JavaScript-性能优化之函数节流(throttle)与函数去抖(debounce)

简单来说,JavaScript性能优化的函数节流和函数去抖动功能节流就是使函数在极短的时间间隔内无法连续调用。下一个函数调用只能在上次函数执行超过指定的时间间隔后进行。对于这两个需求,有两种解决方案:去抖动和节流。Throwle和debouck是解决请求和响应速度不匹配问题的两种解决方案。抛出以相等的间隔执行函数。如果事件在反跳时间间隔t内再次触发,则将再次...

NFC应用于公交卡

由于历史遗留,NFC的兼容性实在太差。一个完备的NFC产品,应该包括三个部分:NFC硬件、统一的系统接口支持、App。这种情况下,手机NFC相当于公交公司的读卡和写卡器。...

uni.showModal,uni.showToast使用

uni.showModal({title:'提示',content:'您已参加并通过本次考试,是否再次进行考试?...

Gidot TypeSetter (排版助手) 3.1.1.2

我们来看看:打开排版助手,可以看到常用的排版功能按钮排列在五个菜单选项下。图2如果您需要更高级的排版,也可以在界面右上角的“typesetting Widget”中进行设置。例如,如果您选择“网页”功能按钮来导入带有HTML代码的文本,您也可以从排版小部件中删除HTML代码功能。...