可以说我有一双std::pair<int, int>
s。每次我比较它们时,我都希望发出一个单独的代码以实现相等,越来越小(例如分别为0,-1和1)。分别比较对的平等,更少和更大。
简易方法是写一些if
- else
代码:
int compare_int_pairs(std::pair<int, int> const &p1_, std::pair<int, int> 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;
}
但有一个更好,更有效的方式来做到这一点(例如,位运算或其他什么东西)?