#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
请按任意键继续. . .
*/
}