// 在 set 中使用自己的结构体
#include "stdafx.h"
#include <iostream>
#include <set>
struct student
{
std::string name;
int age;
bool is_boy;
};
/// 需要自己写比较大小的规则
bool operator<(const student& lhs, const student& rhs) {
char a = lhs.name.front();
/// name 按照首字母的askii比较
if(lhs.name.front() == rhs.name.front())
{
/// name 相同,比较 age
if(lhs.age == rhs.age)
{
/// age 相同,比较 is_boy
return lhs.is_boy < rhs.is_boy;
}
else
return lhs.age < rhs.age;
}
else
return lhs.name.front() < rhs.name.front();
}
int _tmain(int argc, _TCHAR* argv[])
{
student A = {std::string("A"), 20, true