首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何添加和读取两类变量的向量元素

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

Stack Overflow用户
提问于 2017-03-10 22:20:46
回答 2查看 81关注 0票数 0

我读了这篇文章:vector hold two differents data types

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

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

在我的例子中:

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

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

但是当我想填充这个向量时。我不能做这件事。

我编写了以下代码:

代码语言:javascript
运行
复制
vector_centroids.push_back(vec_normal, vec_centroid);

我用另一种方式编码:

代码语言:javascript
运行
复制
vector_centroids.insert(vec_normal, vec_centroid);

对不起,我正在找关于这方面的文件,但我没有找到任何东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-10 22:26:23

您正在操作一个由对/元组组成的向量,即使它聚合了两个值,它仍然是std::vector的一个元素。这就是为什么你必须给你的向量一个包含两个聚合对象的对或一个元组:

代码语言:javascript
运行
复制
vector_centroids.push_back({vec_normal, vec_centroid}); //pair

如果您使用的是元组,请执行以下操作:

代码语言:javascript
运行
复制
vector_centroids.push_back(std::make_tuple(vec_normal, vec_centroid)); //tuple
票数 1
EN

Stack Overflow用户

发布于 2017-03-10 22:42:49

你能使用下面这样的结构吗:

代码语言:javascript
运行
复制
struct NormalCentroidStruct
{
  Vecplane3d normal;
  CartesianPoint centroid;
};

然后,在使用向量时,您可以执行以下操作:

代码语言:javascript
运行
复制
int main()
{
  std::vector<NormalCentroidStruct> vector_centroids;
  //Fill vec_normal and vec_centroid
  vector_centroids.push_back({vec_normal, vec_centroid});
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42720588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档