Чтение кортежа через std::get в C++
Элемент кортежа по позиции берут через шаблонную функцию get.
Номер поля пишут в угловых скобках перед
скобками вызова: нулевой индекс соответствует
первому типу в std::tuple<...>. Запишем
кортеж из трех целых и выведем крайние:
#include <tuple>
std::tuple<int, int, int> vals{1, 2, 3};
std::cout << std::get<0>(vals) << "\n";
std::cout << std::get<2>(vals) << "\n";
Индекс в std::get должен быть
константой времени компиляции: в
угловых скобках стоит литерал, а не переменная
счетчика. Запишем кортеж строки и двух чисел
и выведем строку:
#include <tuple>
#include <string>
std::tuple<std::string, int, int> tag{"ok", 4, 5};
std::cout << std::get<0>(tag) << "\n";
Дан кортеж:
std::tuple<int, char, int> data{9, 'k', 1};
Выведите второе поле через std::get<1>.
Создайте std::tuple<int, int, int>
со значениями 2, 4, 6.
Выведите сумму первого и третьего полей.