С++ 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()));