C++結構體 用sort排序 自己定義比較函數cmp bool cmp()
struct lzl
{
string s;
int a,b;
}x[100];
bool cmp(lzl n,lzl m)
{
if(n.a!=m.a)
return n.a>m.a;
if(n.a==m.a&&n.b!=m.b)
return n.b>m.b;
if(n.a==m.a&&n.b==m.b)
return n.s<m.s;
}
如果a不同,用a來排序,如果a相同,b不同,就用b來排序,a,b都相同就用s來排序。
我想問的是,這個語句在cmp裡面怎麼寫啊!兩個的我會寫,但是3個怎麼寫啊?
if(n.a != m.a)
{
return n.a>m.a;
}else if(n.b != m.b)
{
return n.b > m.b
}else
{
return strcmp(n.s,m.s);
}