使用std :: tuple构造基于矢量的数据集,请参考variadic-templates

spi*_*ker 7 c++ templates c++11

我想制作一个类模板,如下所示:

template < typename... Args > class VectorTuple;
Run Code Online (Sandbox Code Playgroud)

例如,

VectorTuple < long, double, string >
Run Code Online (Sandbox Code Playgroud)

将实例化为

Tuple < vector < long >, vector < double > , vector < string > >
Run Code Online (Sandbox Code Playgroud)

我对variadic-templates不熟悉.最糟糕的方法是从<tuple>复制代码并修改它.有没有一种简单的方法可以直接使用std :: tuple来定义我的VectorTuple.

Pra*_*een 6

如果你正在寻找typedefvariadic-templates类型,然后,

template<typename... Args>
using VectorTuple = std::tuple<std::vector<Args>...>;
Run Code Online (Sandbox Code Playgroud)

现在你可以像使用它一样

VectorTuple<long, double, std::string> obj;
Run Code Online (Sandbox Code Playgroud)