#include <iostream>

#include <string>

#include <fstream>

#include <vector>

#include <algorithm>

#include <deque>

#include <stack>

#include <queue>

#include <list>

using namespace std;

void printlist(const list<int>& l)

{

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

    {

        cout << *it << " ";

    }

    cout << endl;

}

void test01()

{

  list<int> l;

    l.push_back(10);

    l.push_back(20);

    l.push_back(30);

    printlist(l);

    list<int>l2(l.begin(),l.end());

    printlist(l2);

    list<int>l3 = l2;

    printlist(l3);


 

}

void test02()

{

    list<int> l;

    l.push_back(10);

    l.push_back(20);

    l.push_back(30);

    list<int>l2;

    l2.assign(10,100);

    cout<<"l2:";

    printlist(l2);

    l.swap(l2);

    cout << "l:";

    printlist(l);

    cout << "l2:";

    printlist(l2);

}

void test03()

{

    list<int> l;

    l.push_back(10);

    l.push_back(20);

    l.push_back(30);

    if(l.empty())

    {

        cout<<"list is empty"<<endl;

    }

    else

    {

        cout << "list is not empty" << endl;

        cout<<"size:"<<l.size()<<endl;

    }

    l.resize(5);

    cout << "l:";

    printlist(l);

}

void test04()

{

    list<int> l;

    l.push_back(10);

    l.push_back(20);

    l.push_back(30);

    cout << "l:";

    printlist(l);

    l.pop_back();

    cout << "l:";

    printlist(l);

    l.pop_front();

    cout << "l:";

    printlist(l);

    list<int>::iterator it = l.begin();

    l.insert(it,100);

    cout << "l:";

    printlist(l);

    l.insert(++it,1000);

    cout << "l:";

    printlist(l);

    l.clear();

    cout << "l:";

    printlist(l);

}

class Person

{

public:

    Person(string name,int age,int height)

    {

        this->m_Name = name;

        this->m_Age = age;

        this->m_Height = height;

    }

    string m_Name;

    int m_Age;

    int m_Height;

};

bool comparePerson(Person &p1,Person &p2)

{

    if(p1.m_Age == p2.m_Age)

    {

        return p1.m_Height < p2.m_Height;

    }

    return p1.m_Age < p2.m_Age;

}





 

void test05()

{

    list<Person> l;

    Person p1("aaa",10,100);

    Person p2("bbb",20,200);

    Person p3("ccc",30,300);

    Person p4("ddd",20,600);

    Person p5("ddd",20,100);

    l.push_back(p1);

    l.push_back(p2);

    l.push_back(p3);

    l.push_back(p4);

    l.push_back(p5);

    l.sort(comparePerson);

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

    {

        cout << "name:" << it->m_Name << " age:" << it->m_Age << " height:" << it->m_Height << endl;

    }

    cout<<"after sort:"<<endl;

   

       


 

}



 

int main()

{

    //test01();

    //test02();

    //test03();

    //test04();

    test05();

    return 0;

    system("pause");


 

}

更多推荐