Конец в конец в for_each - PullRequest
       18

Конец в конец в for_each

3 голосов
/ 17 августа 2011

Для вызова std::for_each допустимо ли, чтобы оба итератора были конечным итератором? Например,

std::vector<int> some_ints;
std::for_each(ints.end(), ints.end(), [&](int i) {
    std::cout << i;
});

1 Ответ

3 голосов
/ 17 августа 2011

Да, это совершенно законно и создает пустой диапазон.В результате ничего не происходит, но поведение четко определено.

Вот соответствующая цитата со справочной страницы SGI об итераторах и их использовании в качестве диапазонов ( Документация )

Большинство алгоритмов выражены не в терминаходин итератор, но с точки зрения диапазона итераторов;нотация [first, last) относится ко всем итераторам от первого до, но не включая, последнего.Обратите внимание, что диапазон может быть пустым, т.е. первый и последний могут быть одним и тем же итератором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...