Параметр-вектор функции в C++
Давайте теперь будем передавать параметром функции
std::vector. Если тип записан без ссылки, функция
получает копию вектора: все изменения параметра
внутри тела не затрагивают исходный вектор в main.
Запишем функцию, которая обходит переданный вектор и печатает каждый элемент:
#include <iostream>
#include <vector>
void show(std::vector<int> arr) {
for (int num : arr) {
std::cout << num << "\n";
}
}
int main() {
std::vector<int> arr2 = {1, 2, 3};
show(arr2);
return 0;
}
Функция может вернуть сумму элементов копии вектора:
#include <iostream>
#include <vector>
int func(std::vector<int> arr) {
int num1 = 0;
for (int num2 : arr) {
num1 += num2;
}
return num1;
}
int main() {
std::vector<int> arr2 = {1, 2, 3};
std::cout << func(arr2) << "\n";
return 0;
}
Если внутри функции добавить элемент в параметр,
длина копии вырастет, а вектор вызывающего кода
останется прежним. Запишем такой пример
и выведем размер в main:
#include <iostream>
#include <vector>
void func(std::vector<int> arr) {
arr.push_back(99);
}
int main() {
std::vector<int> arr2 = {1, 2, 3};
func(arr2);
std::cout << arr2.size() << "\n";
return 0;
}
Дан вектор:
std::vector<int> arr = {1, 2, 3, 4, 5};
Сделайте функцию, которая выведет элементы этого вектора в консоль.
Дан вектор:
std::vector<int> arr = {1, 2, 3, 4, 5};
Сделайте функцию, которая вернет сумму элементов этого вектора.