zoukankan      html  css  js  c++  java
  • set_multiset_functor

    #include<iostream>
    #include<string>
    #include<set>
    using namespace std;
    
    class Student
    {
    public:
        Student(int age,string name)
        {
            m_age=age;
            m_name=name;
        }
    
        Student(const Student &stu)
        {
            m_age=stu.m_age;
            m_name=stu.m_name;
            cout << "Student "<<m_name<<","<<m_age<<endl;
        }
    
        int m_age;
        string m_name;
    };
    
    class stuFunctor{
    public:
        bool operator()(const Student &stu1,const Student &stu2)
        {
            return stu1.m_age>stu2.m_age;
        }
    };
    
    void TestStudent()
    {
        
        set<Student,stuFunctor> setStudent;
        //Student A(1,"aa"),B(2,"bb"),C(3,"cc");
        //setStudent.insert(A);
        //setStudent.insert(B);
        //setStudent.insert(C);
        setStudent.insert(Student(1,"aa"));
        setStudent.insert(Student(2,"bb"));
        setStudent.insert(Student(3,"cc"));
        
        set<Student,stuFunctor>::iterator it;
        for (it=setStudent.begin();it!=setStudent.end();++it)
        {
            cout<<it->m_name<<" ";
        }
        cout<<endl;
    /*
    Student aa,1
    Student bb,2
    Student cc,3
    cc bb aa
    请按任意键继续. . .
    */
    }
    
    
    void TestFunctor()
    {
        int a[6]={1,2,3,4,5,6};
        //set<int,less<int>> setInt;
        set<int,greater<int>> setInt;
        for (int i=0;i<6;i++)
        {
            setInt.insert(a[i]);
            setInt.insert(a[i]);
        }
        //set<int,less<int>>::iterator it;
        set<int,greater<int>>::iterator it;
        for (it=setInt.begin();it!=setInt.end();++it)
        {
            cout<<*it<<" ";
        }
        cout<<endl;
    }
    
    void TestMultiSet()
    {
        int a[6]={1,2,3,4,5,6};
        multiset<int> setInt;
        for (int i=0;i<6;i++)
        {
            setInt.insert(a[i]);
            setInt.insert(a[i]);
        }
        multiset<int>::iterator it;
        for (it=setInt.begin();it!=setInt.end();++it)
        {
            cout<<*it<<" ";
        }
        cout<<endl;
    /*
    1 1 2 2 3 3 4 4 5 5 6 6
    请按任意键继续. . .
    */
    }
    
    void main()
    {
        TestStudent();return;
        TestFunctor();return;
        TestMultiSet();return;
        int a[6]={1,2,3,4,5,6};
        set<int> setInt;
        for (int i=0;i<6;i++)
        {
            setInt.insert(a[i]);
            setInt.insert(a[i]);
        }
        set<int>::iterator it;
        for (it=setInt.begin();it!=setInt.end();++it)
        {
            cout<<*it<<" ";
        }
        cout<<endl;
    
    /*
    1 2 3 4 5 6
    请按任意键继续. . .
    */
      
    }
  • 相关阅读:
    <EditText /> This text field does not specify an inputType or a hint
    phpmailer【PHP邮件】的用法
    IOS-Quartz2D(Paths元素)
    IOS-网络(网页开发-UIWebView,HTML,CSS,JavaScript,OC和JS代码互调)
    IOS学习路线图
    Android学习必备--java工具15个
    IOS-网络(ASI使用)
    IOS-网络(ASIHTTPRequest的使用简介)
    IOS-网络(AFNetworking)
    IOS-网络(文件压缩和解压缩)
  • 原文地址:https://www.cnblogs.com/sky20080101/p/6431562.html
Copyright © 2011-2022 走看看