Namespaces
Variants

std:: pair

From cppreference.net
Utilities library
ヘッダーで定義 <utility>
template <

class T1,
class T2

> struct pair ;

std::pair は、2つの異種オブジェクトを単一の単位として格納する方法を提供するクラステンプレートです。ペアは、2つの要素を持つ std::tuple の特定のケースです。

T1 T2 のどちらも、非自明なデストラクタを持つ可能性のあるcv修飾されたクラス型、またはその配列でない場合、 pair のデストラクタは自明です。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - C++関連の専門用語(Template parameters、Member types、Member objects、Member functions、Non-member functions、Helper classes、Helper specializations、Deduction guides、Defect reports、See also)は原文のまま保持しました - HTMLタグ、属性、 タグ内のテキストはすべて保持しました - 番号付けと構造は完全に維持しました

テンプレートパラメータ

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 の要素の型を取得する
(クラステンプレートの特殊化)
2つの pair の共通参照型を決定する
(クラステンプレートの特殊化)
2つの pair の共通型を決定する
(クラステンプレートの特殊化)
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 のデストラクタの自明性が未規定 規定済み

関連項目

(C++11)
異なる型の要素を保持する固定サイズのコンテナを実装する
(クラステンプレート)
(C++11)
左辺値参照の tuple を作成する、またはtupleを個々のオブジェクトに展開する
(関数テンプレート)