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

Константная ссылка-параметр в 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; }
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить