Есть ли способ получить доступ к итератору (я полагаю, нет индекса цикла?) в цикле for на основе диапазона С++ 11?
Часто нам нужно сделать что-то особенное с первым элементом контейнера и перебрать оставшиеся элементы. Итак, я ищу что-то вроде оператора c++11_get_index_of
в этом псевдокоде:
for (auto& elem: container)
{
if (c++11_get_index_of(elem) == 0)
continue;
// do something with remaining elements
}
Мне бы очень хотелось не возвращаться к старому стилю ручной обработки итераторов код в этом сценарии.
for
(если это легко решает вашу проблему). Не заставляйте себя делать сложные вещи, которые не обязательно должны быть сложными. - person Nawaz   schedule 19.01.2014for
только в том случае, если ни один из алгоритмов не подходит. - person Karoly Horvath   schedule 19.01.2014if (elem == container.front()) continue;
в качестве обходного пути? Не слишком сложно, не так ли? И мы все еще можем использовать краткий синтаксис. Все же лучше, чем 3 строки ручной обработки итератора, как в ИМХО до С++ 11. - person Jay   schedule 19.01.2014ptr_vector
в Boost. Кроме того, если есть одна вещь, которую вы должны изучить с помощью C++, это: не ленитесь. Я знаю, что итераторы болезненны, но это правильный способ сделать это, и он поможет вам научиться писать надежный универсальный код. Индексы не всегда имеют смысл, но итераторы всегда имеют смысл. - person user541686   schedule 19.01.2014