问题描述
|
我需要创建向量的向量(精确地说是3个向量的向量)。每个组成向量具有不同的数据类型(字符串,双精度,用户定义的数据类型)。这在C ++中可行吗?如果没有,是否还有其他优雅的方式可以实现我的要求?
解决方法
如果您知道其中的三个,并且知道它们的类型,为什么不只写一个类呢?
class Data
{
std::vector<std::string> _strings;
std::vector<double> _doubles;
std::vector<UserDefined> _userDefined;
public:
// ...
};
这也将提供一些强大的语义(在我看来,无关紧要的向量似乎很奇怪)。
, template<typename T> struct inner_vectors {
std::vector<double> double_vector;
std::vector<std::string> string_vector;
std::vector<T> user_vector;
};
std::vector<inner_vectors<some_type>> vector_of_vectors;
, 在我看来,结构或类是最好的方法,也是最优雅的解决方案。
, 你是这个意思吗?
vector<tuple<vector<string>,vector<double>,vector<T> > >