Библиотека задач по C++ | тесты, код, задания
5.4K subscribers
1.02K photos
6 videos
338 links
Задачи и тесты по C++ для тренировки и обучения.

Как запустить своего ии-агента: https://clc.to/tvpmDQ

По рекламе: @tproger_sales_bot

Учиться у нас: https://proglib.io/w/7a480301

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
👀 Какой кортеж изменит исходную переменную?

C++20. Что выведет код?

#include <functional>
#include <iostream>
#include <tuple>

int main() {
int x = 1;
auto a = std::make_tuple(x);
auto b = std::make_tuple(std::ref(x));
std::get<0>(a) = 5;
std::get<0>(b) = 9;
std::cout << x << ' ' << std::get<0>(a);
}


👾 — 1 5
👍 — 9 9
🥰 — 9 5
⚡️ — Ошибка компиляции

Ответ: 🥰 — 9 5.

make_tuple(x) сохраняет копию числа. При передаче std::ref(x) получается кортеж с элементом int&, связанным с x. Поэтому запись через b меняет x, а элемент a остаётся равным 5.

Документация

➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰3