8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
|
||||||
1 | ||||||
Как определить индекс элемента в range-based for цикле?17.01.2017, 06:07. Показов 6483. Ответов 27
Метки нет (Все метки)
Вопрос, вот есть у меня простейший Range-based цикл
9 7 1 А если я хочу вывести на экран более подробную информацию: массив[0] = 9 массив[1] = 7 массив[2] = 1 Как мне обойтись без введения дополнительной переменной-счетчика?
0
|
17.01.2017, 06:07 | |
Ответы с готовыми решениями:
27
Как это работает? (range-based for loop) Range-based for Range-based for Range-based for |
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
|
||||||
17.01.2017, 06:28 [ТС] | 3 | |||||
В первом сообщении ошибка, исправленный код:
0
|
Модератор
|
||||||
17.01.2017, 07:12 | 4 | |||||
MikeNew, вот:
1
|
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
|
|
17.01.2017, 07:23 [ТС] | 5 |
gru74ik, Громоздко и неуниверсально (не сработало со сложным пользовательским типом), но все равно спасибо.
0
|
Модератор
|
||||||
17.01.2017, 09:26 | 6 | |||||
MikeNew, для простого сишного массива даже так можно:
И вообще, код покажите. Что значит "не сработало"? Может у Вас там банально оператор вывода не перегружен, а Вы "не сработало"...
1
|
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
|
|||||||||||
17.01.2017, 09:50 [ТС] | 7 | ||||||||||
gru74ik, ну вектор там, код из чужого примера, просто мной дополненный:
gru74ik, дополнение, VkExtensionProperties - просто структура:
0
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
17.01.2017, 09:53 | 8 |
MikeNew, А в чем собственно состоит задача то?
0
|
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
|
||||||
17.01.2017, 10:03 [ТС] | 9 | |||||
Bretbas задача состоит в том, чтобы знать ссылку на счетчик range-based цикла без ввода дополнительной переменной счетчика.
То есть задачу можно решить, введя свою переменую-счетчик:
0
|
Модератор
|
||||||
17.01.2017, 10:12 | 10 | |||||
Сообщение было отмечено MikeNew как решение
Решение
1
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|||||||||||
17.01.2017, 10:14 | 11 | ||||||||||
MikeNew,
Нет такой. range-based циклы подобны проходу по итераторам. Тоесть код:
0
|
Модератор
|
||||||
17.01.2017, 10:18 | 12 | |||||
MikeNew, всё работает:
1
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||||||
17.01.2017, 10:22 | 13 | |||||
MikeNew, видите, как товарищ gru74ik получает счетчик без лишних переменных, как Вы хотели?
1
|
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
|
|
17.01.2017, 10:34 [ТС] | 14 |
gru74ik, теперь все ок, большое спасибо.
0
|
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
|
|
17.01.2017, 10:36 | 15 |
MikeNew, на сколько я понимаю, смысл range-based цикла в том и состоит, что он абстрагируется от индексов и прочих деталей реализации конкретного контейнера. Если же тебе нужны именно эти детали, то тогда надо использовать обычный цикл for, так как он лучше выражает твои намерения.
1
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
17.01.2017, 10:36 | 16 |
MikeNew, Удачи
0
|
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
|
|
17.01.2017, 10:39 [ТС] | 17 |
Bretbas, нет, оно, конечно, работает, но я хотел не так, похоже своя переменная-счетчик будет во всех смыслах экономней.
Добавлено через 2 минуты likehood, а если мне одновременно нужны и счетчик, который в обычном цикле и преимущества range-base цикла? Не вижу смысла от такого абстрагирования. Одна потеря преимущества обычного цикла.
0
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||||||
17.01.2017, 10:43 | 18 | |||||
likehood,
обычный цикл for вводит понятие индекса.
0
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
17.01.2017, 10:49 | 20 |
0
|
17.01.2017, 10:49 | |
17.01.2017, 10:49 | |
Помогаю со студенческими работами здесь
20
A range-based for statement range-based for не работает загадки range-based Непонятки с range-based for! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |