C ++ 11有函数std::minmax_element ,它返回一对值。 然而,这样处理和阅读是相当混乱的,并且产生了一个额外的,后来无用的variables来污染范围。 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()));