Spec-Zone.ru › C++

std::pair

Определено в заголовочном файле <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

Функции-члены

(constructor)
создаёт новый объект pair
(открытая функция-член)
operator=
присваивает содержимое
(открытая функция-член)
swap
(C++11)
меняет содержимое местами
(открытая функция-член)

Функции, не являющиеся членами

make_pair
создаёт объект pair типа, определяемого типами аргументов
(шаблон функции)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(C++20)
лексикографически сравнивает значения в pair
(шаблон функции)
std::swap(std::pair)
(C++11)
специализирует алгоритм std::swap
(шаблон функции)
get(std::pair)
(C++11)
получает доступ к элементу pair
(шаблон функции)

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

std::tuple_size<std::pair>
(C++11)
получает размер pair
(специализация шаблона класса)
std::tuple_element<std::pair>
(C++11)
получает тип элементов pair
(специализация шаблона класса)
std::basic_common_reference<std::pair>
(C++23)
определяет общий ссылочный тип для двух pairs
(специализация шаблона класса)
std::common_type<std::pair>
(C++23)
определяет общий тип для двух pairs
(специализация шаблона класса)
std::formatter<std::pair>
(C++23)
поддержка форматирования для 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 Применяется к Опубликованное поведение Корректное поведение
LWG 2796 C++98 тривиальность деструктора pair не была определена определена

См. также

tuple
(C++11)
реализует контейнер фиксированного размера, содержащий элементы, типы которых могут различаться
(шаблон класса)
tie
(C++11)
создаёт tuple из lvalue-ссылок или распаковывает кортеж в отдельные объекты
(шаблон функции)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/pair

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API