最終更新日時:
が更新

履歴 編集

class template
<utility>

std::pair

namespace std {
  template <class T1, class T2>
  struct pair;
}

概要

pairは、2つの異なる型の値を保持する「組」を表現するためのクラスである。また、N個の異なる型の値を保持する「タプル」を表現するためのクラスとして、tupleクラスも提供されている。

標準ライブラリにおいてpairは、連想配列コンテナの実装であるmapクラスやunordered_mapクラスで、キーと値をまとめるためのデータ型として使用されている。

メンバ変数

名前 説明 対応バージョン
T1 first 1つめの要素
T2 second 2つめの要素

メンバ関数

名前 説明 対応バージョン
(constructor) コンストラクタ
operator= 代入演算子
swap 他のpairオブジェクトと値を入れ替える

メンバ型

名前 説明 対応バージョン
first_type T1
second_type T2

非メンバ関数

比較演算子

名前 説明 対応バージョン
operator== 等値比較を行う
operator!= 非等値比較を行う
operator< 左辺が右辺よりも小さいか判定を行う
operator<= 左辺が右辺以下か判定を行う
operator> 左辺が右辺より大きいか判定を行う
operator>= 左辺が右辺以上か判定を行う

入れ替え

名前 説明 対応バージョン
swap 2つのpairオブジェクトを入れ替える

ヘルパ関数

名前 説明 対応バージョン
make_pair pairを構築するヘルパ関数

タプルインタフェース

名前 説明 対応バージョン
tuple_size pairの要素数を取得する(class template) C++11
tuple_element pairi番目の要素型を取得する(class template) C++11
get pairi番目の要素を参照する(function template) C++11

推論補助

名前 説明 対応バージョン
(deduction_guide) クラステンプレートの推論補助 C++17

#include <iostream>
#include <utility>
#include <string>

int main()
{
  // pairオブジェクトの構築
  std::pair<int, std::string> p = std::make_pair(1, "hello");

  // 要素の参照
  std::cout << p.first << std::endl;
  std::cout << p.second << std::endl;
}

出力

1
hello

関連項目

参照