std::pair
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <utility>
|
||
template< class T1, class T2 > struct pair; |
||
std::pair, это шаблон класса, который позволяет хранить два разнородных объекта как единое целое. std::pair, это частный случай std::tuple с двумя элементами.
Если ни T1 ни T2 не являются типом класса с возможной cv-квалификацией с нетривиальным деструктором или массивом этого класса, деструктор pair тривиален.
Параметры шаблона
| T1, T2 | — | типы элементов, которые хранит пара. |
Типы элементы
| Тип элемента | Определение |
first_type
|
T1
|
second_type
|
T2
|
Объекты элементы
| Имя элемента | Тип |
first
|
T1
|
second
|
T2
|
Функции элементы
| создаёт новый pair (public функция-элемент) | |
| присваивает содержимое (public функция-элемент) | |
(C++11) |
обменивает содержимое (public функция-элемент) |
Функции, не являющиеся элементами
создаёт объект типа pair, определённого типами аргументов (шаблон функции) | |
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20) |
лексикографически сравнивает значения в паре (шаблон функции) |
(C++11) |
специализация алгоритма std::swap (шаблон функции) |
(C++11) |
доступ к элементу пары (шаблон функции) |
Вспомогательные классы
(C++11) |
получает размер пары (специализация шаблона класса) |
получает типы элементов pair (специализация шаблона класса) | |
определяет общий ссылочный тип двух pair (специализация шаблона класса) | |
(C++23) |
получает общий тип двух pair (специализация шаблона класса) |
Руководства по выводу (начиная с C++17)
Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
| Номер | Применён | Поведение в стандарте | Корректное поведение |
|---|---|---|---|
| LWG 2796 | C++98 | тривиальность деструктора pair не определена
|
определена |
Смотрите также
(C++11) |
реализует контейнер фиксированного размера, который содержит элементы, возможно, разных типов (шаблон класса) |
| создаёт std::tuple левосторонних ссылок или распаковывает кортеж на отдельные объекты (шаблон функции) |