@Junior007

Что значит такое выражение?

Наткнулся на такую запись:
int main()
{
  std::list<int> x = {1, 2, 2, 3, 3, 2, 1, 1, 2};
 
  std::cout << "contents before:";
  for (auto val : x)
    std::cout << ' ' << val;
  std::cout << '\n';

}


Не могу понять значение:
for (auto val : x)

И разве for не должен иметь такой шаблон?
for (; ;)
  • Вопрос задан
  • 206 просмотров
Решения вопроса 2
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Откройте для себя C++11. Это новый стандарт языка, в котором улучшен синтаксис.

for (auto val : x) - это цикл по коллекции x, в переменную x будет копироваться каждый элемент коллекции.
Ответ написан
PavelK
@PavelK
Цикл эквивалентен такому:
for (auto val = x.begin(); val != x.end(); val++)
т.е. цикл с использованием итераторов
auto - автоматический подбор типа переменной. Не рекомендую злоупотреблять ею.
Не обязательно.
Фича из C++11;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы