В 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(lhsMin, lhsMax).swap(
std::minmax_element(lhs.begin(), lhs.end()));
Подробнее здесь: https://stackoverflow.com/questions/402 ... g-stdpairs