STL SET 类 排序

STL SET 类 排序 - 缘起宇轩阁 - 博客频道 - CSDN.NET

STL SET 类 排序


分类:
C++语言编程


41人阅读
评论(0)
收藏
举报

 

 

[c-sharp] view plain copy print ?
  1. #include <set>  
  2. #include <string>  
  3. #include <iostream>  
  4. using namespace std;  
  5.   
  6. class CEmployee {  
  7. public:  
  8.     CEmployee();  
  9.     ~CEmployee();  
  10.      const string getName() const;        
  11.      void setName(const string name);      
  12.      const string getTitle() const;     
  13.      void setTitle(string title);     
  14.      int getID() const;            
  15.      void setID(int id);  
  16. private:  
  17.     int m_id;  
  18.     string m_username;  
  19.     string m_title;  
  20.       
  21. };  
  22. CEmployee::CEmployee()  
  23. {  
  24.   
  25. }  
  26. CEmployee::~CEmployee()  
  27. {  
  28. }  
  29. const string CEmployee::getName() const  
  30. {  
  31.      return m_username;  
  32. }  
  33. void CEmployee::setName(const string username)  
  34. {  
  35.     m_username = username;  
  36. }  
  37.   
  38. const string CEmployee::getTitle() const  
  39. {  
  40.   return m_title;  
  41. }  
  42.   
  43. void CEmployee::setTitle(string title)  
  44. {  
  45.    m_title = title;  
  46. }  
  47. int CEmployee::getID() const  
  48. {  
  49.    return m_id;  
  50. }  
  51. void CEmployee::setID(int id)  
  52. {  
  53.    m_id = id;  
  54. }  
  55. class sortByID  
  56. {  
  57.    public:  
  58.    bool operator() (CEmployee const &_A, CEmployee const &_B) const  
  59.    {  
  60.     if(_A.getID() < _B.getID()) return true;  
  61.     if(_A.getID() == _B.getID()) return _A.getName().compare(_B.getName()) < 0;  
  62.     return false;  
  63.    }  
  64. };   
  65.   
  66. int main()  
  67. {  
  68.        set<CEmployee, sortByID> empIDSet; // se是雇员的set,  
  69.        set<CEmployee, sortByID> ::iterator  iter;  
  70.        CEmployee employeeInfo;  
  71.        employeeInfo.setName("employee_one");  
  72.        employeeInfo.setTitle("employee");  
  73.        employeeInfo.setID(1);  
  74.        empIDSet.insert(employeeInfo);  
  75.        CEmployee employeeInfo2;  
  76.        employeeInfo2.setName("employee_two");  
  77.        employeeInfo2.setTitle("CFO");  
  78.        employeeInfo2.setID(5);  
  79.        empIDSet.insert(employeeInfo2);  
  80.   
  81.        CEmployee employeeInfo3;  
  82.        employeeInfo3.setName("employee_three");  
  83.        employeeInfo3.setTitle("manager");  
  84.        employeeInfo3.setID(3);  
  85.        empIDSet.insert(employeeInfo3);  
  86.          
  87.         
  88.         for (iter=empIDSet.begin(); iter!=empIDSet.end(); iter++)  
  89.         {  
  90.            cout<<iter->getID()<<" " <<iter->getName()<<" " <<iter->getTitle()<<endl;  
  91.         }  
  92.         return 0;  
  93. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值