#include <iostream>

#include <string>

#include <fstream>

#include <vector>

#include <algorithm>

#include <deque>

#include <stack>

#include <queue>

#include <list>

#include <set>

using namespace std;

void printSet(const set<int> &s)

{

    for (set<int>::const_iterator it = s.begin(); it != s.end(); it++)

    {

        cout << *it << " ";

    }

    cout << endl;

}

void test01()

{

    set<int> s1;

    s1.insert(10);

    s1.insert(30);

    s1.insert(50);

    s1.insert(20);

    s1.insert(40);

    s1.erase(s1.begin());

    s1.erase(50);

    printSet(s1);

    int num=s1.count(30);

    cout << "num = " << num << endl;

    if(s1.empty())

    {

        cout << "s1 is empty" << endl;

    }

    else

    {

        cout << "s1 is not empty, size = " << s1.size() << endl;

    }

}

void test02()

{

    set<int> s1;

    pair<set<int>::iterator, bool> ret = s1.insert(10);

    if(ret.second)

    {

        cout << "insert " << *(ret.first) << " success" << endl;

    }

    else

    {

        cout << "insert " << *(ret.first) << " failed" << endl;

    }

    ret = s1.insert(10);

    if(ret.second)

    {

        cout << "insert " << *(ret.first) << " success" << endl;

    }

    else

    {

        cout << "insert " << *(ret.first) << " failed" << endl;

    }

    multiset<int> ms;

    ms.insert(10);

    ms.insert(10);

    for(multiset<int>::iterator it = ms.begin(); it != ms.end(); it++)

    {

        cout << *it << " ";

    }

    cout << endl;

}


 

void test03()

{

    pair<string,int> p("hello",1);

    cout << p.first << " " << p.second << endl;

    pair<string,int> p2(p);

    cout << p2.first << " " << p2.second << endl;

}

class MyCompare

{

public:

    bool operator()(int v1,int v2)const

    {

        return v1>v2;

    }

};

void test05()

{

    set<int,MyCompare> s5;

    s5.insert(10);

    s5.insert(20);

    s5.insert(30);

    for(set<int,MyCompare>::iterator it = s5.begin(); it != s5.end(); it++)

    {

        cout << *it << " ";

    }

}

class Person

{

public:

    Person(string name,int age)

    {

        this->m_Name = name;

        this->m_Age = age;

    }

    string m_Name;

    int m_Age;

};

class PersonCompare

{

public:

    bool operator()(const Person &p1, const Person &p2)const

    {

        return p1.m_Age > p2.m_Age;

    }

};

void test06()

{

    set<Person,PersonCompare> s1;

    Person p1("aaa",10);

    Person p2("bbb",20);

    Person p3("ccc",30);

    s1.insert(p1);

    s1.insert(p2);

    s1.insert(p3);

    for(set<Person>::iterator it = s1.begin(); it != s1.end(); it++)

    {

        cout << "name = " << it->m_Name << " age = " << it->m_Age << endl;

    }

}


 

int main()

{

    //test01();

    //test02();

    //test03();

    //test05();

    test06();

    return 0;

    system("pause");


 

}

更多推荐