Форум программистов, компьютерный форум CyberForum.ru

Range-based for - C++

Восстановить пароль Регистрация
 
i7otep9wka
1 / 1 / 1
Регистрация: 13.12.2011
Сообщений: 76
27.04.2014, 15:46     Range-based for #1
Пример кода:
C++
1
2
3
4
5
int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
  x *= 2;
}
Возникли вопросы:
1. "х" является итератором?
2. Для чего мы записывает "2" по адресу, который лежит в х?
Так мы сделать не можем?
C++
1
2
3
4
5
6
int my_array[5] = {1, 2, 3, 4, 5};
for(int x : my_array)
{
  x = 2;
 
}
3. Обращаюсь ли я к следующему элементу коллекции таким образом :
C++
1
2
3
4
5
6
7
8
int my_array[5] = {1, 2, 3, 4, 5};
for(int x : my_array)
{
  x = 2;
  if (x+1==0){
  ..
 }
}
?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2014, 15:46     Range-based for
Посмотрите здесь:

A range-based for statement C++
kak poluchit' soobshenie WM_CHAR v Dialog Based prilojeniyax? C++
C++ range-based for не работает
загадки range-based C++
Range-based for C++
C++ Range-based for trouble
Range-based for C++
C++ Vector out of range

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Komi
 Аватар для Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
27.04.2014, 15:53     Range-based for #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
x *=  2
это не адресс, это тоже самое что
C++
1
x = x*2
только короче.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
27.04.2014, 16:11     Range-based for #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от i7otep9wka Посмотреть сообщение
1. "х" является итератором?
Нет, он является ссылкой на элемент массива (то, на что ссылается итератор).

Добавлено через 1 минуту
Цитата Сообщение от i7otep9wka Посмотреть сообщение
Обращаюсь ли я к следующему элементу коллекции таким образом
Нет, это операция с текущим элементом массива. В общем случае другие элементы внутри range-based for недоступны.
Yandex
Объявления
27.04.2014, 16:11     Range-based for
Ответ Создать тему
Опции темы

Текущее время: 09:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru