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]);

пожалуй, короче :)

→ Ссылка