簡體   English   中英

向量與向量的多種數據類型

[英]Multiple Data Types with Vectors of Vectors

我試圖找到一種方法來創建具有三種不同類型的3維矢量,使其結構如下:

Vector[long][int][double];

我發現了很多示例,這些示例展示了如何創建具有單一數據類型的3d矢量,例如:

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個值的類型的向量:可能是您自己的結構。

, and that something can only be of one type. 歸根結底,您的數據結構必須容納 ,而某種東西只能是一種類型。 現在,如果要在向量的每個位置存儲多種數據類型,則“內容”本身可以是多種不同類型的結構。

如果您提供更多背景信息將有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM