Preferred implementation of '<' for multi-variable structures
问题 Initially this may seem overly abstract or philosophical, but I am genuinely interested to see if someone has a convincing argument in favor of one implementation over the other. Given operator< for std::pair<T1, T2> , which would be the better implementation: return x.first < y.first || x.first == y.first && x.second < y.second; or: return x.first < y.first || !(y.first < x.first) && x.second < y.second; My understanding is that the two implementations yield equivalent results. Is the latter