C++:矢量的矢量

C++: Vector of vectors

本文关键字:C++      更新时间:2023-10-16

我需要创建一个向量的向量(精确地说是3个向量的矢量)。每个组成向量都具有不同的数据类型(String、double、用户定义的数据类型)。这在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;

在我的opnion中,结构或类是最好的方法,也是最优雅的解决方案。

这就是你的意思吗?

vector<tuple<vector<string>, vector<double>, vector<T> > >
相关文章:
  • 没有找到相关文章