#cpp #cpp11
Код: int arr[5] = { 1, 2, 3, 4, 5 }; for (auto i: arr) std::cout << "i" << "\n"; Вопрос, почему нумерация идет с единицы, а не с нуля? Как-то это неправильно выглядит, не говоря уже о том что цикл уходит за пределы массива. Как использовать range-based цикл для массива чтобы нумерация была с нуля, а не с единицы?
Ответы
Ответ 1
Конструкция for (auto i: container) поочередно перебирает элементы контейнера, а не индексы, и применима даже там, где нет понятия индекса - например, в хеш-таблице. Это выражение можно рассматривать как разворачивающееся в for(auto iterator = begin(container); iterator != end(container); ++iterator) { auto i = *iterator;
Комментариев нет:
Отправить комментарий