Любая структура данных STL, такая как пара, которая дает три элемента (типы) вместо двух?

Вопрос 1:

Я использую С++ 11, и я учусь. Я понимаю, что могу сделать это с двумя парами:

pair<pair<<#class _T1#>, <#class _T2#>>, <#class _T3#>>

Это лучший способ?

Вопрос 2:

Если мне не нужны разные типы, то такой же тип для двух элементов - это трата для использования пары, что я должен использовать тогда? Для трех предметов? (опять же тип)

Ответ 1

Используйте std::tuple:

std::tuple<_T1, _T2, _T3>

Обратите внимание, что std::tuple поддерживает произвольное количество сохраняемых в них типов. Кроме того, для доступа к элементам вы не можете сделать приятный pair.first/pair.second, вы должны использовать синтаксис std::get<n>(tuple), где n - это элемент, который вы хотите получить.