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

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

view plaincopy to clipboardprint?
#include  
#include  
using namespace std;  
struct stu{  
    char a[10];  
    int s;  
 
};  
class stu1:greater  
{  
public:  
    bool    operator () (stu b1,stu b2) const{  
        return b1.s    }  
};  
main()  
{  
    set a;  
    for(int i=0;i<3;i++){  
        stu d;  
        cin>>d.a>>d.s;  
        a.insert(d);  
    }  
    set::iterator l;  
    for(l=a.begin();l!=a.end();l++){  
        cout<a<<" "<s<    }  
 
 

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

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


}


代码比较简单就是对stl里greater(当然也可以是less)继承,并且重载()运算符即可.

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sx1989827/archive/2009/01/28/3854048.aspx

你可能感兴趣的