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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
i7otep9wka
1 / 1 / 1
Регистрация: 13.12.2011
Сообщений: 81
#1

Range-based for - C++

27.04.2014, 15:46. Просмотров 250. Ответов 2
Метки нет (Все метки)

Пример кода:
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++
Как получить сообщение WM_CHAR в dialog based приложениях? C++
C++ range-based for не работает
загадки range-based C++
vector subscript out of range C++
Range-based for C++
C++ Range-based for trouble
Range-based for C++
C++ Vector out of range
C++ Map out of range
C++ Непонятки с range-based for!
C++ Ошибка "range-based 'for' loops are not allowed in c++ mode"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 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
Ответ Создать тему
Опции темы

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