C++11 具有std::minmax_element
返回一对值的函数。然而,这在处理和阅读时相当混乱,并且会产生一个额外的、后来无用的变量来污染作用域。
auto lhsMinmax = std::minmax_element(lhs.begin(), lhs.end());
int &lhsMin = *(lhsMinMax.first);
int &lhsMax = *(lhsMinmax.second);
有一个更好的方法吗?就像是:
int lhsMin;
int lhsMax;
std::make_pair<int&, int&>(lhsMin, lhsMax).swap(
std::minmax_element(lhs.begin(), lhs.end()));