最終更新日時:
が更新

履歴 編集

class template
<tuple>

std::tuple(C++11)

namespace std {
  template <class... Args>
  class tuple;
}

概要

tuple型は、複数の型の値を保持する「タプル」を表現するためのクラスである。

pair型は2つの型の値を保持する「組」を表現することができるが、tupleではN個の型の値を扱うことができる。

メンバ関数

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

非メンバ関数

タプル生成関数

名前 説明 対応バージョン
ignore 無視する要素のプレースホルダー(constant variable) C++11
make_tuple 引数のコピーからタプルを生成する C++11
forward_as_tuple 引数の完全な型からタプルを生成する C++11
tie 引数への参照からタプルを生成する C++11
tuple_cat 複数のタプルから1つのタプルを生成する C++11

要素アクセス

名前 説明 対応バージョン
get tuplei番目の要素を参照する C++11

入れ替え

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

関係演算子

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

推論補助

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

#include <iostream>
#include <tuple>
#include <string>

int main()
{
  // 3要素のタプルを作る
  std::tuple<int, char, std::string> t = std::make_tuple(1, 'a', "hello");

  // 0番目の要素を参照
  int& i = std::get<0>(t);
  std::cout << i << std::endl;

  // 2番目の要素を参照
  std::string& s = std::get<2>(t);
  std::cout << s << std::endl;
}

出力

1
hello

バージョン

言語

  • C++11

処理系

参照