如何添加和读取两种变量的向量元素

How to add and read elements of vector of two type of variables

本文关键字:变量 两种 向量 元素 读取 何添加 添加      更新时间:2023-10-16

我读了这篇文章:向量保存两个差异数据类型

然后我尝试使用这种格式。

我在这篇文章中看到了两种方法:

在我的情况下:

a) std::vector<std::pair<Vecplane3d, CartesianPoint>> vector_super;

b)std::vector<std::tuple<Vecplane3d, CartesianPoint>> vector_super;

,但是当我想填充此向量时。我无法做到。

我对此进行了编码:

vector_centroids.push_back(vec_normal, vec_centroid);

我用其他方式编码:

vector_centroids.insert(vec_normal, vec_centroid);

对不起,但我正在寻找有关此的文献,但我什么也没找到。

您正在操纵配对/元组的向量,即使它汇总了两个值,它仍然是您的std :: vector的一个元素。这就是为什么您必须给矢量一对或一个包含两个汇总对象的元组:

vector_centroids.push_back({vec_normal, vec_centroid}); //pair

如果您正在使用元组:

vector_centroids.push_back(std::make_tuple(vec_normal, vec_centroid)); //tuple

您是否可以使用以下结构:

struct NormalCentroidStruct
{
  Vecplane3d normal;
  CartesianPoint centroid;
};

然后,使用矢量时,您可以按以下方式执行:

int main()
{
  std::vector<NormalCentroidStruct> vector_centroids;
  //Fill vec_normal and vec_centroid
  vector_centroids.push_back({vec_normal, vec_centroid});
}