Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpPmRfLp 308 of 390 menu
◀ ▶

Ссылка в цикле в C++

При обходе вектора циклом изменение переменной элемента не приводит к изменениям самого вектора. В переменную попадает копия элемента. Запишем цикл и выведем первый элемент:

#include <iostream> #include <vector> int main() { std::vector<int> vec = {1, 2, 3, 4, 5}; for (int num : vec) { num += 1; } std::cout << vec[0] << "\n"; // выведет 1 return 0; }

Нужного эффекта можно добиться, если объявить переменную цикла ссылкой. Запись в нее меняет элемент вектора. Запишем тот же цикл со ссылкой:

#include <iostream> #include <vector> int main() { std::vector<int> vec = {1, 2, 3, 4, 5}; for (int& num : vec) { num += 1; } std::cout << vec[0] << "\n"; // выведет 2 return 0; }

Исправьте код так, чтобы элементы вектора изменились.

#include <iostream> #include <vector> int main() { std::vector<int> vec = {6, 7, 8}; for (int num : vec) { num = num * num; } std::cout << vec[0] << "\n"; return 0; }

Исправьте код так, чтобы элементы вектора изменились.

#include <iostream> #include <vector> #include <string> int main() { std::vector<std::string> vec = {"a", "b", "c"}; for (std::string item : vec) { item += "!"; } std::cout << vec[0] << "\n"; return 0; }
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить