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

Ссылка на вектор в C++

При присваивании в новую переменную записывается копия вектора. Переменные никак не связаны, их можно менять независимо. Запишем копию и поменяем первый элемент копии. Исходный вектор останется прежним:

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

Можно сделать так, чтобы копировалось не значение, а ссылка на него. При изменении одного имени меняется и второе. Ссылку сразу связывают с уже существующим вектором: после типа ставят & и справа от = стоит этот вектор. Запишем ссылку и поменяем первый элемент через нее:

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

Расскажите, каким будет результат выполнения кода:

#include <iostream> #include <vector> int main() { std::vector<int> vec1 = {8, 9}; std::vector<int> vec2 = vec1; vec2[0] = 7; std::cout << vec1[0] << "\n"; std::cout << vec2[0] << "\n"; return 0; }

Расскажите, каким будет результат выполнения кода:

#include <iostream> #include <vector> int main() { std::vector<int> vec1 = {4, 5, 6}; std::vector<int>& vec2 = vec1; vec1[0]++; std::cout << vec1[0] << "\n"; std::cout << vec2[0] << "\n"; return 0; }

Расскажите, каким будет результат выполнения кода:

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