https://www.youtube.com/watch?v=j0_0699UZF4&list=PLQOaTSbfxUtCrKs0nicOg2npJQYSPGO9r&index=163&t=329s
Изучение цикла начал в этом видео и сразу же попробовал реализовать его сам и столкнулся с такой проблемой. Автор в видео использовал эту конструкцию:
for each (int var in arr)
cout << var;
У меня же эту конструкцию компилятор не понимает, подчеркивает each
и in
Бродя на просторах интернета наткнулся на другую реализацию этого цикла, она же у меня работает
for (auto element : arr)
cout << arr [element] << " ";
Но и с ней не без проблем. Теперь у меня есть несколько вопросов:
При использовании рабочей конструкции у меня не выводится [0]
элемент массива, но, если заменить вывод по индексу выводом напрямую переменной element
, то такой проблемы не будет
В векторе в дополнение, кроме отсутствия [0]
элемента ещё вылетает программа с ошибкой. Решение то же, как в массиве
Почему не понимается конструкция написанная автором?
Начнем с того, что
for each (int var in arr)
- это кусок на C# или на C++/CLI. Это другой язык, не стандартный C++.
Далее,
for (auto element : arr)
cout << arr [element] << " ";
-это не "другая" реализация, а единственная существующая в актуальных на данный момент стандартах языка (C++11
,14
,17
) конструкция цикла по контейнеру, но применили вы ее неверно - у вас element - это уже элемент из массива, а не индекс элемента в массиве, поэтому писать надо так:
for (auto element : arr)
cout << element << " ";
А теперь, чтобы написать совсем хорошо, следует поправить код вот так:
for (const auto& element : arr)
{
cout << element << " ";
}
const заставит компилятор ругаться на вас, если вы заходите изменять элемент в массиве - опечатаетесь, например. Правильный синтаксис для изменения элементов:
for (auto& element : arr)
{
cin >> element;
}
Классическая ошибка при этом - забыть поставить ссылку
for (auto element : arr)
{
cin >> element;
}
Если написать вот так, массив изменяться не будет.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как ориентироваться в src папке проекта jquery? Где я могу найти конкретно этот jQueryget метод?:
Всем привет, помогите пожалуйста реализовать данный скриптЕсть 4 уровненный список через цикл в виде Laravel
Wordpress некоторые картинки битые, не отображаются
Не могу подключить статические файлы к шаблонам HTML в DjangoЯ новичок в Django и не особо в это вник, но, однако, на моём прошлом тестовом проекте...