您的位置:首页 > 编程语言 > C语言/C++

(c++)关于stl里set容器的自定义排序

2009-01-28 15:52 295 查看
最近结合stl看数据结构,对许多原本半生不熟的知识都有了点领悟,大家知道stl里无论是向量还是容器的sort算法都很有用也很方便.但是似乎大家一直都是用int类型来初始化这些对象,那我用自定义的一个结构来对初始化这些对象,并且想对结构里的某一个元素的大小来排序,该怎么办呢,我上网查了些资料,并根据自己的学习与琢磨,找到了比较简单的方法.那么不说废话,看代码:

#include<iostream>
#include<set>
using namespace std;
struct stu{
	char a[10];
	int s;

};
class stu1:greater<stu>
{
public:
	bool	operator () (stu b1,stu b2) const{
		return b1.s<b2.s;
	}
};
main()
{
	set<stu,stu1 > a;
	for(int i=0;i<3;i++){
		stu d;
		cin>>d.a>>d.s;
		a.insert(d);
	}
	set<stu,stu1 >::iterator l;
	for(l=a.begin();l!=a.end();l++){
		cout<<l->a<<" "<<l->s<<endl;
	}

}




代码比较简单就是对stl里greater(当然也可以是less)继承,并且重载()运算符即可.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: