具有矢量的矢量的多个数据类型

Multiple Data Types with Vectors of Vectors

本文关键字:数据类型      更新时间:2023-10-16

我正试图找到一种方法来创建一个具有三种不同类型的三维向量,使其结构为:

Vector[long][int][double];

我发现了很多例子,展示了如何创建一个具有单一数据类型的三维矢量,例如:

std::vector<vector<vector<int> > >;

但我现在可以找到或弄清楚如何将多个数据类型分配给向量。

如果希望同时使用这三种类型,则应该使用结构。

struct Vector3d{
  long x;
  int y;
  double z;
};
//... or a union, if each entry only contains one type.
union NumberContainer
{
  long x;
  int y;
  double z;
};
std::vector<Vector3d> vector1;//Vector of three types
std::vector<NumberContainer> vector2;//Vector that can contain one of three types per entry
vector1[0].x=1;
vector1[0].y=2;
vector1[0].z=3;
//vector1 contains... x=1, y=2,z= 3
vector2[0].x=1;
vector2[0].y=2;
vector2[0].z=3;
//vector2 contains x=undefined, y=undefined, z=3

概念上Vector[long][int][double]没有任何意义。你可以有一个向量的向量的东西的向量。最后只有一种类型的东西

迈出维度之外的一步。如果你只是想在一个向量中每个元素包含3个值,你可以通过多种方式来实现。制作一个包含3个值的类型的向量:可能是您自己的结构。

在一天结束时,您的数据结构必须包含某些东西,并且这些东西只能是一种类型。现在,如果你想在向量的每个位置存储多个数据类型,你的"某物"本身可以是多个不同类型的结构。

如果您提供更多的上下文

,这将有所帮助