C ++:向量的向量

时间:2011-05-31 16:09:34

标签: c++ stl

我需要创建一个矢量矢量(准确地说是3个矢量的矢量)。每个组成向量具有不同的数据类型(String,double,用户定义的数据类型)。这在C ++中是否可行?如果没有,有没有其他优雅的方式来实现我的要求?

4 个答案:

答案 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> > >