std::pair<const T&,const T&> minmax( const T& a, const T& b,
Compare comp );
1-2) 若 a<b 或若 a 等价于 b 则返回 std::pair<const T&, const T&>(a, b) 的结果。若 b<a 则返回 std::pair<const T&, const T&>(b, a) 的结果。
3-4) 以 ilist 中最小元素为第一元素,最大元素为第二元素的 pair 。若有数个元素等价于最小者,则返回最左的这种元素。若有数个元素等价于最大者,则返回最右的这种元素。
版本一
template<class T>
std::pair<const T&, const T&> minmax( const T& a, const T& b )
{
return (b < a) ? std::pair<const T&, const T&>(b, a)
: std::pair<const T&, const T&>(a, b);
}
版本二
template<class T, class Compare>
std::pair<const T&, const T&> minmax( const T& a, const T& b, Compare comp )
{
return comp(b, a) ? std::pair<const T&, const T&>(b, a)
: std::pair<const T&, const T&>(a, b);
}
版本三
版本四