正确使用std :: tuple?

时间:2014-07-14 19:33:17

标签: c++ c++11 tuples

我最近学会了如何使用std :: tuple(之前从未需要它),并且很好奇何时才能在容器上使用它?我只是问,因为std :: tuple不像容器,因为它需要诸如std :: get和std :: make_tuple之类的东西。

2 个答案:

答案 0 :(得分:8)

它更像是一个结构的替代品而不是一个容器。但是,在大多数情况下,出于可读性原因,最好实际定义结构。元组最好用于具有可变数量参数的模板中。

答案 1 :(得分:8)

std::tuple包含固定数量的不同类型的元素。当您想要将不同类型的几个对象组合在一起时,可以使用它。当分组没有任何特别有用的语义时,我会在struct上使用它。例如,当函数需要返回多个对象时,std::tuple很有用。另一方面,容器包含多个相同类型的元素(可能是不同的数量)。