Sunday, 27. August 2017 09:08AM
#Pair 之间的比较
两个元素都相等,pair对象才被视为相等(equal):
~~~
namespace std {
template <typename T1, typename T2>
bool operator== (const pair<T1,T2>& x, const pair<T1,T2>& y) {
return x.first == y.first && x.second == y.second;
}
}
~~~
比较大小时,第一元素具有较高的优先级。如果两个pair的第一元素不相等,其比较结果就成为整个比较的结果。如果first相等,才继续比较second,并把比较结果当做整体结果:
~~~
namespace std {
template <typename T1, typename T2>
bool operator< (const pair<T1,T2>& x, const pair<T1,T2>& y) {
return x.first < y.first ||
(!(y.first < x.frist) && x.second < y.second);
}
}
~~~