Копия вектора в 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 <string>
int main() {
std::string str1 = "abc";
std::string str2 = str1;
str2[0] = '!';
std::cout << str1 << "\n"; // выведет abc - не изменилось
return 0;
}
Расскажите, каким будет результат выполнения кода:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec1 = {6, 7, 8};
std::vector<int> vec2 = vec1;
vec2[0] = 4;
std::cout << vec1[0] << "\n";
std::cout << vec2[0] << "\n";
return 0;
}