#include <iostream>
#include <functional>
using namespace std;
#include "set"
class Student
{
public:
Student(char *name, int age)
{
strcpy_s(this->name, name);
this->age = age;
}
public:
char name[64];
int age;
};
struct FuncStudent
{
bool operator()(const Student &left, const Student &right)
{
if (left.age < right.age)
{
return true;
}
else
{
return false;
}
}
};
//typedef pair<iterator,bool> _Pairib
//如何判断 set1.insert函数的返回值
//仿函数的用法
void main94()
{
Student s1("s1", 31);
Student s2("s2", 22);
Student s3("s3", 44);
Student s4("s4", 11);
Student s5("s5",31);
set<Student, FuncStudent> set1;
pair<set<Student, FuncStudent>::iterator, bool> pair1=set1.insert(s1);
if (pair1.second == true)
{
cout << "插入s1成功" << endl;
}
else
{
cout << "插入s1失败" << endl;
}
set1.insert(s2);
pair<set<Student, FuncStudent>::iterator, bool> pair5=set1.insert(s5);
if (pair5.second == true)
{
cout << "插入s5成功" << endl;
}
else
{
cout << "插入s5失败" << endl;
}
//遍历
for (set<Student, FuncStudent>::iterator it = set1.begin(); it != set1.end(); it++)
{
cout << it->age << "\t" << it->name << endl;
}
}
int main()
{
main94();
}