Ссылка на вектор в параметре в C++
Параметр-ссылка на вектор работает с тем же
вектором, который передал вызывающий код.
Элемент дописывают методом push_back,
и новая длина видна снаружи. Запишем функцию
и выведем последний элемент через back:
#include <iostream>
#include <vector>
void append_tail(std::vector<int>& vec) {
vec.push_back(99);
}
int main() {
std::vector<int> vec = {1, 2};
append_tail(vec);
std::cout << vec.back() << "\n"; // выведет 99
return 0;
}
Исправьте код так, чтобы новый элемент был виден снаружи функции.
#include <iostream>
#include <vector>
void add_zero(std::vector<int> vec) {
vec.push_back(0);
}
int main() {
std::vector<int> vec = {4, 5};
add_zero(vec);
std::cout << vec.back() << "\n";
return 0;
}
Исправьте код так, чтобы новый элемент был виден снаружи функции.
#include <iostream>
#include <vector>
#include <string>
void push_tag(std::vector<std::string> vec) {
vec.push_back("end");
}
int main() {
std::vector<std::string> vec = {"a", "b"};
push_tag(vec);
std::cout << vec.back() << "\n";
return 0;
}