std::pair
Определено в заголовке <utility> | ||
|---|---|---|
template<
class T1,
class T2
> struct pair;
|
std::pair — это шаблон класса, предоставляющий способ хранения двух разнородных объектов как единого целого. Пара — это частный случай std::tuple с двумя элементами.
Если ни T1, ни T2 не являются, возможно, квалифицированным классом-типом с нетривиальным деструктором, или массивом такого класса, то деструктор pair тривиален.
Параметры шаблона
| T1, T2 | - | типы элементов, которые хранит пара. |
Типы-члены
| Тип члена | Определение |
|---|---|
first_type | T1 |
second_type | T2 |
Объекты-члены
| Имя члена | Тип |
|---|---|
first | T1 |
second | T2 |
Члены-функции
| создает новую пару (публичный член-функция) |
|
| присваивает содержимое (публичный член-функция) |
|
|
(C++11) | меняет содержимое (публичный член-функция) |
Внешние функции
создает объект типа pair, определяемый типами аргументов (шаблон функции) |
|
|
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20) | лексикографически сравнивает значения в паре (шаблон функции) |
|
(C++11) | специализация алгоритма std::swap (шаблон функции) |
|
(C++11) | доступ к элементу pair (шаблон функции) |
Вспомогательные классы
|
(C++11) | получает размер pair (специализация шаблона класса) |
|
(C++11) | получает тип элементов pair (специализация шаблона класса) |
|
(C++23) | определяет общий тип ссылки двух pair (специализация шаблона класса) |
|
(C++23) | определяет общий тип двух pair (специализация шаблона класса) |
|
(C++23) | поддержка форматирования для pair и tuple (специализация шаблона класса) |
Правила вывода типов(с C++17)
Отчеты об ошибках
Следующие изменения поведения отчетов об ошибках были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применено к | Поведение, как опубликовано | Корректное поведение |
|---|---|---|---|
| LWG 2796 | C++98 | тривиальность деструктора pair была неопределенной | определенная |
См. также
|
(C++11) | реализует контейнер фиксированного размера, который хранит элементы, возможно, разных типов (шаблон класса) |
|
(C++11) | создает tuple ссылок на значения или распаковывает кортеж в отдельные объекты (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/pair