【发布时间】:2014-01-09 10:31:28
【问题描述】:
我想使用与 std::pair 尽可能相似的三元组类。 STL 似乎没有。我不想使用太重的东西,比如Boost。是否有一些有用的 FOSS 非限制性许可三元组我可以从某个地方提升?我应该自己滚动吗?我应该完全做其他事情吗?
编辑:关于std::tuple...
三元组特定的课程真的没有好处吗?我的意思是,对于元组,我做不到
template<typename T1, typename T2, typename T3> std::tuple<T1, T2, T3> triple;
现在可以吗?我不需要对单个类型组合三元组进行 typedef 吗?
【问题讨论】:
-
我会说
std::tuple。 -
如果由于某种原因您无法访问
std::tuple(例如,不符合 C++11 的编译器),请考虑使用std::pair<T, std::pair<U, V> >。 -
@FrédéricHamidi:这会使元素引用变得非常麻烦和不直观。
-
但是
std::pair的元素引用已经不直观。您真正需要称为first和second的元素的频率(而不是例如key和value,或name和surname)。 -
@JamesKanze:
mytriple.second.second比mytriple.third更令人困惑。
标签: c++ c++-standard-library stdtuple triplet