程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ set自定義排序規則(nyist 8)

C++ set自定義排序規則(nyist 8)

編輯:C++入門知識

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;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved