Сравнивая пары отдельно для равенства, меньше и больше.C++

Программы на C++. Форум разработчиков
Anonymous
Сравнивая пары отдельно для равенства, меньше и больше.

Сообщение Anonymous »

Допустим, что у меня есть пара std :: pare s. Я хочу, чтобы каждый раз я сравнивал их, чтобы излучать отдельный код для равенства, все меньше и больше (например, 0, -1 и 1 соответственно). < /P>

Наивный подход состоит в том, чтобы написать некоторые, если < /cod> - -else< /code> code: < /p>

int compare_int_pairs(std::pair const &p1_, std::pair const &p2_) {
if(p1_.first < p2_.first) {
return -1;
} else if(p1_.first > p2_.first) {
return 1;
} else {
if(p1_.second < p2_.second) {
return -1;
} else if(p1_.second > p2_.second) {
return 1;
} else {
return 0;
}
}

return 0;
}
< /code>

Но есть ли лучший и более эффективный способ сделать это (например, побитовой операции или что -то еще)? < /p>

Подробнее здесь: https://stackoverflow.com/questions/330 ... nd-greater

Вернуться в «C++»