Практика на ссылки в C++
Расскажите, каким будет результат выполнения кода:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec1 = {5, 6, 7};
std::vector<int>& vec2 = vec1;
vec2[1] = 9;
std::cout << vec1[1] << "\n";
std::cout << vec2[1] << "\n";
return 0;
}
Расскажите, каким будет результат выполнения кода:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {3, 4};
for (int num : vec) {
num += 1;
}
std::cout << vec[0] << "\n";
return 0;
}
Исправьте код так, чтобы переменная снаружи функции изменилась.
#include <iostream>
void twice(int num) {
num *= 2;
}
int main() {
int value = 5;
twice(value);
std::cout << value << "\n";
return 0;
}
Исправьте код так, чтобы элементы вектора изменились.
#include <iostream>
#include <vector>
#include <string>
int main() {
std::vector<std::string> vec = {"go", "run"};
for (std::string word : vec) {
word += "x";
}
std::cout << vec[0] << "\n";
return 0;
}
Расскажите, каким будет результат выполнения кода:
#include <iostream>
int main() {
int num1 = 4;
int num2 = 6;
int& num3 = num1;
num3 = num2;
std::cout << num1 << "\n";
std::cout << num2 << "\n";
return 0;
}
Исправьте код так, чтобы функция видела тот же вектор и не могла его менять.
#include <iostream>
#include <vector>
void report_sum(std::vector<int> vec) {
int sum = 0;
for (int num : vec) {
sum += num;
}
std::cout << sum << "\n";
}
int main() {
std::vector<int> vec = {2, 4, 6};
report_sum(vec);
return 0;
}
Расскажите, каким будет результат выполнения кода:
#include <iostream>
#include <map>
#include <string>
int main() {
std::map<std::string, int> obj1 = {{"p", 1}, {"q", 2}};
std::map<std::string, int>& obj2 = obj1;
obj2["q"] = 8;
std::cout << obj1["q"] << "\n";
std::cout << obj2["q"] << "\n";
return 0;
}
Расскажите, каким будет результат выполнения кода:
#include <iostream>
#include <set>
int main() {
std::set<int> st1 = {2, 4};
std::set<int>& st2 = st1;
st2.insert(6);
std::cout << st1.contains(6) << "\n";
return 0;
}
Расскажите, каким будет результат выполнения кода:
#include <iostream>
int main() {
int arr1[3] = {7, 8, 9};
int (&arr2)[3] = arr1;
arr2[2] = 1;
std::cout << arr1[2] << "\n";
return 0;
}