#include <iostream>
#include <set>
struct MyStr
{
int a;
int b;
int c;
};
struct MyStrCmp
{
bool operator()(const MyStr& my1, const MyStr& my2)const
{
if (my1.a != my2.a)
return my1.a < my2.a;
if (my1.b != my2.b)
return my1.b < my2.b;
if (my1.c != my2.c)
return my1.c < my2.c;
return false;
}
};
int main()
{
std::set<MyStr,MyStrCmp> setMyStr;
setMyStr.insert({ 2,2,3 });
setMyStr.insert({ 1,2,3 });
setMyStr.insert({ 1,2,4 });
setMyStr.insert({ 1,1,3 });
setMyStr.insert({ 1,1,2 });
setMyStr.insert({ 1,1,0 });
system("pause");
return 0;
}
本质就是先比较第一个变量的值,如果第一个变量的值不相等以第一个变量比较为结果为准。如果第一个变量值相等,则比较第二个。依次类推即可。