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
    请按任意键继续. . .
    */
      
    }
  • 相关阅读:
    Socket编程模式
    Asp.Net Core
    TensorFlow文本与序列的深度模型
    Net
    XSS分析及预防(转)
    MyCAT部署及实现读写分离(转)
    如何搭建NTP服务(转)
    如何搭建DNS服务(转)
    如何高效地向Redis插入大量的数据(转)
    Android 通过广播启动另一个应用的Activity
  • 原文地址:https://www.cnblogs.com/sky20080101/p/6431562.html
Copyright © 2011-2022 走看看