web-dev-qa-db-fra.com

C ++ fournit-il un modèle "triple", comparable à la paire <T1, T2>?

Est-ce que C++ a quelque chose comme std :: pair mais avec 3 éléments?

Par exemple:

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

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

Vous cherchez peut-être 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

Modèle de classe std::Tuple est une collection de valeurs hétérogènes de taille fixe, disponible dans la bibliothèque standard depuis C++ 11. Il s'agit d'une généralisation de std::pair et présenté en en-tête

#include <Tuple>

Vous pouvez en lire plus ici:

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

Exemple:

#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

Non, il n'y en a pas.

Vous pouvez cependant utiliser un Tuple ou une "double paire" (pair<pair<T1,T2>,T3>). Ou - évidemment - écrivez la classe vous-même (ce qui ne devrait pas être difficile).

1
Paweł Stawarz