Namespaces
Variants

std:: pair

From cppreference.net
Utilities library
Определено в заголовочном файле <utility>
template <

class T1,
class T2

> struct pair ;

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
(шаблон функции)
специализирует алгоритм std::swap
(шаблон функции)
получает доступ к элементу pair
(шаблон функции)

Вспомогательные классы

получает размер pair
(специализация шаблона класса)
получает тип элементов pair
(специализация шаблона класса)
определяет общий ссылочный тип двух pair s
(специализация шаблона класса)
определяет общий тип двух pair s
(специализация шаблона класса)
поддержка форматирования для pair
(специализация шаблона класса)

Вспомогательные специализации

template < class T, class U >

constexpr bool enable_nonlocking_formatter_optimization < std :: pair < T, U >> =
enable_nonlocking_formatter_optimization < T > &&

enable_nonlocking_formatter_optimization < 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 в отдельные объекты
(шаблон функции)