bool operator<(const Person& p)const //小于运算符
friend ostream& operator<<(ostream& os,const Person& p1) //输出
#include<iostream>
#include<string>
#include<map>
#include<set>
using namespace std;
class Person
{
public:
Person(string name, string no, int age)
{
this->sname = name;
this->sno = no;
this->sage = age;
}
bool operator<(const Person& p)const
{
if (this->sno < p.sno)
return true;
return false;
}
friend ostream& operator<<(ostream& os,const Person& p1)
{
cout << "姓名:" << p1.sname << " 学号:"
<< p1.sno << " 年龄:" << p1.sage << endl;
return os;
}
public:
string sname;
string sno;
int sage;
};
int main()
{
Person p3("王麻子", "18170025", 18);
Person p1("张三", "18170021", 19);
Person p2("李四", "18170022", 20);
set<Person> st;
st.insert(p2);
st.insert(p1);
st.insert(p3);
set<Person>::iterator it;
for (it = st.begin(); it != st.end(); it++)
cout << *it;
system("pause");
return 0;
}