可以說我有一雙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;
}
但有一個更好,更有效的方式來做到這一點(例如,位運算或其他什麼東西)?