std::tie записывает поля кортежа в переменные, которые уже объявлены. Функция std::tie собирает ссылки на переданные объекты во временный кортеж.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpTpTi 211 of 696 menu
◀ ▶

Распаковка через std::tie в C++

Функция std::tie записывает поля кортежа в переменные, которые уже объявлены.

Функция std::tie собирает ссылки на переданные объекты во временный кортеж, который можно присвоить справа от знака =. Запишем три целых, распакуем кортеж и выведем среднее:

#include <tuple> std::tuple<int, int, int> pack{1, 2, 3}; int a = 0; int b = 0; int c = 0; std::tie(a, b, c) = pack; std::cout << b << "\n";

Тот же прием работает с парой из std::utility. Запишем строку и число, заранее объявим переменные и выведем строку:

#include <tuple> #include <utility> #include <string> std::pair<std::string, int> row{"item", 7}; std::string name; int qty = 0; std::tie(name, qty) = row; std::cout << name << "\n";

Дан кортеж:

std::tuple<int, int> edge{4, 6};

Объявите две переменные int, распакуйте edge через std::tie и выведите их сумму.

Создайте std::pair<char, int> со значениями 'm' и 11. Запишите результат в две уже объявленные переменные и выведите число.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить