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