Функция minmax
Функция minmax возвращает пару значений:
первым элементом пары идёт минимальное значение,
а вторым - максимальное. В первый параметр
мы передаём первое значение для сравнения,
а во второй - второе значение. Функция также
может принимать третий параметр - функцию сравнения,
которая задаёт пользовательский порядок сравнения.
Синтаксис
minmax(a, b)
minmax(a, b, comp)
Пример
Давайте найдём минимум и максимум из чисел
5 и 10:
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
auto res = minmax(5, 10);
cout << res.first << " " << res.second << endl;
return 0;
}
Результат выполнения кода:
5 10
Пример
Давайте найдём минимум и максимум из чисел
10 и 3. Обратите внимание,
что порядок аргументов не важен - функция
сама определит, что меньше, а что больше:
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
auto res = minmax(10, 3);
cout << res.first << " " << res.second << endl;
return 0;
}
Результат выполнения кода:
3 10
Пример
Давайте найдём минимум и максимум из строк
"abcde" и "12345".
Сравнение строк происходит лексикографически:
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string a = "abcde";
string b = "12345";
auto res = minmax(a, b);
cout << res.first << " " << res.second << endl;
return 0;
}
Результат выполнения кода:
"12345 abcde"
Пример
Давайте найдём минимум и максимум по пользовательскому правилу: будем считать, что меньше то число, у которого меньше модуль. Передадим третьим параметром лямбда-функцию сравнения:
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
auto comp = [](int a, int b) {
return abs(a) < abs(b);
};
auto res = minmax(-7, 3, comp);
cout << res.first << " " << res.second << endl;
return 0;
}
Результат выполнения кода:
3 -7
Смотрите также
-
функция
min,
которая возвращает минимальное значение -
функция
max,
которая возвращает максимальное значение -
функция
min_element,
которая ищет минимальный элемент в диапазоне -
функция
max_element,
которая ищет максимальный элемент в диапазоне