tuple | t — кортеж с количеством и типами членов, заданными списком T1...Tn . Члены инициализируются по умолчанию (см. раздел 3.3.1) |
tuple | t — кортеж с типами T1...Tn , каждый член которого инициализируется соответствующим инициализатором vi . Этот конструктор является явным (см. раздел 7.5.4) |
make_tuple(v1, v2, ..., vn) | Возвращает кортеж, инициализированный данными инициализаторов. Тип кортежа выводится из типов инициализаторов |
t1 == t2 t1 != t2 | Два кортежа равны, если у них совпадает количество членов и каждая пара членов равна. Для сравнения используется собственный оператор == каждого члена. Как только найдены неравные члены, последующие не проверяются |
t1 | Операторы сравнения кортежей используют алфавитный порядок (см. раздел 9.2.7). У кортежей должно быть одинаковое количество членов. Члены кортежа t1 сравниваются с соответствующими членами кортежа t2 при помощи оператора < |
get(t) | Возвращает ссылку i -ю переменную-член кортежа t ; если t — это l-значение, то результат — ссылка на l-значение; в противном случае — ссылка на r-значение. Все члены кортежа являются открытыми (public ) |
tuple_size< | Шаблон класса, экземпляр которого может быть создан по типу кортежа и имеет public constexpr static переменную-член value типа size_t , содержащую количество членов в указанном типе кортежа |
tuple_elementтипКортежа>::type | Шаблон класса, экземпляр которого может быть создан по целочисленной константе и типу кортежа, имеющий открытый член type , являющийся типом указанного члена в кортеже указанного типа |
tuple
можно считать структурой данных на "скорую руку".
17.1.1. Определение и инициализация кортежей
При определении кортежа следует указать типы каждого из его членов:
tuple
tuple
someVal("constants", {3.14, 2.718}, 42, {0,1,2,3,4,5});
При создании объекта кортежа можно использовать либо стандартный конструктор кортежа, инициализирующий каждый член по умолчанию (см. раздел 3.3.1), либо предоставить инициализатор для каждого члена, как при инициализации кортежа someVal
. Этот конструктор кортежа является явным (см. раздел 7.5.4), поэтому следует использовать прямой синтаксис инициализации:
tuple
tuple
В качестве альтернативы, подобно функции make_pair()
(см. раздел 11.2.3), можно использовать библиотечную функцию make_tuple()
, создающую объект кортежа:
//
//
auto item = make_tuple("0-999-78345-X", 3, 20.00);
Подобно функции make_pair()
, функция make_tuple()
использует типы, предоставляемые в качестве инициализаторов, для вывода типа кортежа. В данном случае кортеж item
имеет тип tuple
.