我需要创建一个矢量矢量(准确地说是3个矢量的矢量)。每个组成向量具有不同的数据类型(String,double,用户定义的数据类型)。这在C ++中是否可行?如果没有,有没有其他优雅的方式来实现我的要求?
答案 0 :(得分:14)
如果你知道其中有三个,你知道他们的类型,为什么不写一个课?
class Data
{
std::vector<std::string> _strings;
std::vector<double> _doubles;
std::vector<UserDefined> _userDefined;
public:
// ...
};
这也会给出一些强烈的语义(在我看来,一些不相关的东西似乎很奇怪)。
答案 1 :(得分:3)
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;
答案 2 :(得分:1)
在我看来,结构或类是最好的方法,也是最优雅的解决方案。
答案 3 :(得分:0)
这是你的意思吗?
vector<tuple<vector<string>, vector<double>, vector<T> > >