web-dev-qa-db-ja.com

C ++は、pair <T1、T2>に相当する「トリプル」テンプレートを提供していますか?

C++には std :: pair のようなものがありますが、3つの要素がありますか?

例えば:

#include <triple.h>
triple<int, int, int> array[10];

array[1].first = 1;
array[1].second = 2;
array[1].third = 3;
13
user3432317

あなたは探しているかもしれません std::Tuple

#include <Tuple>

....

std::Tuple<int, int, int> tpl;

std::get<0>(tpl) = 1;
std::get<1>(tpl) = 2;
std::get<2>(tpl) = 3;
30
juanchopanza

クラステンプレートstd::Tupleは、C++ 11以降の標準ライブラリで使用できる、異種の値の固定サイズのコレクションです。 std::pairを一般化したもので、ヘッダーに表示されます

#include <Tuple>

あなたはここでこれについて読むことができます:

http://en.cppreference.com/w/cpp/utility/Tuple

例:

#include <Tuple>

std::Tuple<int, int, int> three;

std::get<0>( three) = 0;
std::get<1>( three) = 1;
std::get<2>( three) = 2;
10
4pie0

いいえ、ありません。

ただし、 Tuple または「ダブルペア」(pair<pair<T1,T2>,T3>)。または-明らかに-自分でクラスを記述します(難しいことではありません)。

1
Paweł Stawarz