Любая структура данных 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
- это элемент, который вы хотите получить.