Константная ссылка-параметр в C++
Константная ссылка-параметр читает переданный
вектор без копии и без права перезаписи внутри
функции. Тип const std::vector<int>& связывает
функцию с тем же вектором. Элементы через такой
параметр менять нельзя. Функция print_sum
обходит вектор и печатает сумму. Запишем программу:
#include <iostream>
#include <vector>
void print_sum(const std::vector<int>& vec) {
int sum = 0;
for (int num : vec) {
sum += num;
}
std::cout << sum << "\n";
}
int main() {
std::vector<int> vec2 = {1, 2, 3};
print_sum(vec2);
return 0;
}
Исправьте код так, чтобы функция видела тот же вектор и не могла его менять.
#include <iostream>
#include <vector>
void print_size(std::vector<int> vec) {
std::cout << vec.size() << "\n";
}
int main() {
std::vector<int> vec = {10, 20, 30};
print_size(vec);
return 0;
}
Исправьте код так, чтобы функция видела тот же вектор и не могла его менять.
#include <iostream>
#include <vector>
#include <string>
void print_first(std::vector<std::string> vec) {
std::cout << vec[0] << "\n";
}
int main() {
std::vector<std::string> vec = {"one", "two"};
print_first(vec);
return 0;
}
Исправьте код так, чтобы функция видела тот же словарь и не могла его менять.
#include <iostream>
#include <map>
#include <string>
void print_value(std::map<std::string, int> obj) {
std::cout << obj["a"] << "\n";
}
int main() {
std::map<std::string, int> obj = {{"a", 3}, {"b", 4}};
print_value(obj);
return 0;
}