c++: std::minmax для массива arr[2]
подскажите, можно ли в C++ с использованием функций STL сделать так:
arr[2] = {obj1, obj2};
arr = std::minmax(arr[0], arr[1], lambda);
понимаю, что для такой конструкции можно просто сделать собственный код:
if (!cmp(arr[0], arr[1]) {
const auto tmp = arr[0];
arr[0] = arr[1];
arr[1] = arr[0];
}
но интересно, дает ли stl возможность "однострочно" делать такие операции, не создавая свой код
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Такое не подойдет?
auto [m,M] = std::minmax(arr[0], arr[1], lambda);
Хотя
if (arr[0]>arr[1]) swap(arr[0],arr[1]);
пожалуй, короче :)