std:: pair
|
ヘッダーで定義
<utility>
|
||
|
template
<
class
T1,
|
||
std::pair
は、2つの異種オブジェクトを単一の単位として格納する方法を提供するクラステンプレートです。ペアは、2つの要素を持つ
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
の要素の型を取得する
(クラステンプレートの特殊化) |
2つの
pair
の共通参照型を決定する
(クラステンプレートの特殊化) |
|
|
(C++23)
|
2つの
pair
の共通型を決定する
(クラステンプレートの特殊化) |
|
(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 | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 2796 | C++98 |
pair
のデストラクタの自明性が未規定
|
規定済み |
関連項目
|
(C++11)
|
異なる型の要素を保持する固定サイズのコンテナを実装する
(クラステンプレート) |
|
(C++11)
|
左辺値参照の
tuple
を作成する、またはtupleを個々のオブジェクトに展開する
(関数テンプレート) |