std::tuple
Материал из cppreference.com
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google.
Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке. Щёлкните здесь, чтобы увидеть английскую версию этой страницы |
| Определён в заголовочном файле <tuple>
|
||
| template< class... Types > class tuple; |
(начиная с C++11) | |
Шаблонный класс std::tuple - коллекция фиксированного размера с гетерогенными значениями (кортеж). Это обобщение std::pair.
Содержание |
[править] Функции-члены
| создает новый кортеж (public функция-член) | |
| присваивает содержимое одного кортежа другому (public функция-член) | |
| Меняет местами содержимое двух кортежей (public функция-член) | |
[править] Функции, не являющиеся членами
| создает кортеж типа, определённого типами аргументов (шаблон функции) | |
| создает tuple ссылок именующее или распаковывает кортеж на отдельные объектыОригинал: creates a tuple of lvalue references or unpacks a tuple into individual objectsТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
| создает tuple из RValue ссылкиОригинал: creates a tuple of rvalue referencesТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
| создает tuple путем объединения любого количества наборовОригинал: creates a tuple by concatenating any number of tuplesТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
| доступ к указанному элементу кортежа Оригинал: tuple accesses specified element Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
| лексикографически сравнивает значения в кортеже Оригинал: lexicographically compares the values in the tuple Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
| (C++11) |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |
[править] Вспомогательные классы
| получает размер tuple во время компиляции Оригинал: obtains the size of tuple at compile time Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (специализация шаблона класса) | |
| получает тип указанного элемента Оригинал: obtains the type of the specified element Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (специализация шаблона класса) | |
| Специализируется черта std::uses_allocator типа Оригинал: specializes the std::uses_allocator type trait Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (специализация шаблона класса) | |
| заполнителя, чтобы пропустить элемент при распаковке tuple использованием tie Оригинал: placeholder to skip an element when unpacking a tuple using tie Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (константа) | |
[править] Пример
Запустить этот код
#include <tuple> #include <iostream> #include <string> #include <stdexcept> std::tuple<double, char, std::string> get_student(int id) { if (id == 0) return std::make_tuple(3.8, 'A', "Lisa Simpson"); if (id == 1) return std::make_tuple(2.9, 'C', "Milhouse Van Houten"); if (id == 2) return std::make_tuple(1.7, 'D', "Ralph Wiggum"); throw std::invalid_argument("id"); } int main() { auto student0 = get_student(0); std::cout << "ID: 0, " << "GPA: " << std::get<0>(student0) << ", " << "grade: " << std::get<1>(student0) << ", " << "name: " << std::get<2>(student0) << '\n'; double gpa1; char grade1; std::string name1; std::tie(gpa1, grade1, name1) = get_student(1); std::cout << "ID: 1, " << "GPA: " << gpa1 << ", " << "grade: " << grade1 << ", " << "name: " << name1 << '\n'; }
Вывод:
ID: 0, GPA: 3.8, grade: A, name: Lisa Simpson ID: 1, GPA: 2.9, grade: C, name: Milhouse Van Houten

