std:: pair
|
Определено в заголовочном файле
<utility>
|
||
|
template
<
class
T1,
|
||
std::pair
— это шаблон класса, который предоставляет способ хранения двух разнородных объектов в виде единой структуры. Пара является частным случаем
std::tuple
с двумя элементами.
Если ни
T1
, ни
T2
не являются потенциально cv-квалифицированными типами классов с нетривиальным деструктором или массивами таких типов, то деструктор
pair
является тривиальным.
Содержание |
Параметры шаблона
| T1, T2 | - | типы элементов, которые хранит пара. |
Типы членов
| Тип члена | Определение |
first_type
|
T1
|
second_type
|
T2
|
Объекты-члены
| Название члена | Тип |
first
|
T1
|
second
|
T2
|
Функции-члены
создает новый
pair
(public member function) |
|
|
присваивает содержимое
(public member function) |
|
|
(C++11)
|
обменивает содержимое
(public member function) |
Функции, не являющиеся членами класса
создает объект
pair
типа, определяемого типами аргументов
(шаблон функции) |
|
|
(удалено в C++20)
(удалено в C++20)
(удалено в C++20)
(удалено в C++20)
(удалено в C++20)
(C++20)
|
лексикографически сравнивает значения в
pair
(шаблон функции) |
|
(C++11)
|
специализирует алгоритм
std::swap
(шаблон функции) |
|
(C++11)
|
получает доступ к элементу
pair
(шаблон функции) |
Вспомогательные классы
|
(C++11)
|
получает размер
pair
(специализация шаблона класса) |
|
(C++11)
|
получает тип элементов
pair
(специализация шаблона класса) |
определяет общий ссылочный тип двух
pair
s
(специализация шаблона класса) |
|
|
(C++23)
|
определяет общий тип двух
pair
s
(специализация шаблона класса) |
|
(C++23)
|
поддержка форматирования для
pair
(специализация шаблона класса) |
Вспомогательные специализации
|
template
<
class
T,
class
U
>
constexpr
bool
enable_nonlocking_formatter_optimization
<
std
::
pair
<
T, U
>>
=
|
(начиная с C++23) | |
Эта специализация
std::enable_nonlocking_formatter_optimization
позволяет эффективную реализацию
std::print
и
std::println
для вывода объекта
pair
когда и
T
и
U
поддерживают эту оптимизацию.
Руководства по выводу (начиная с C++17)
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 2796 | C++98 |
тривиальность деструктора
pair
не была указана
|
указана |
Смотрите также
|
(C++11)
|
реализует контейнер фиксированного размера, который содержит элементы, возможно, разных типов
(шаблон класса) |
|
(C++11)
|
создает
tuple
из lvalue-ссылок или распаковывает tuple в отдельные объекты
(шаблон функции) |