У меня есть следующий оператор < который должен сортировать сначала по значению, затем по другому значению:
inline bool operator < (const obj& a, const obj& b)
{
if(a.field1< b.field1)
return true;
else
return a.field2 < b.field2;
}
У меня такое чувство, что это неправильно, и вы не можете этого сделать без другого третьего теста comparaison для переменных-членов, но я не могу найти ни одного примера, где это не работает. Так что это действительно так, как ожидалось? спасибо
изменить: Я бы закодировал его как:
inline bool operator < (const obj& a, const obj& b)
{
if(a.field1< b.field1)
return true;
else if(a.field1> b.field1)
return false;
else
return a.field2 < b.field2;
}
Есть ли какие-то различия? Я спрашиваю, потому что я знаю, что моя правильно из опыта, но и дольше, чем первая.