Предположим, у меня есть std::vector<int>
:
std::vector<int> v;
[v is initialized]
, и я хочу получить максимальный элемент v
. Для этого есть алгоритм:
int max_value = *std::max_element(v.begin(), v.end());
Пока все хорошо.
Теперь предположим, что v
содержит 10 000 000 элементов, а его 10-й элемент равен std::numeric_limits<int>::max()
. Собирается ли std::max_element()
(без необходимости) проверять 9 999 990 последних элементов v
или распознает, что не может быть элементов больше std::numeric_limits<int>::max()
, и, таким образом, остановится после 10-го элемента?