我读了这篇文章:vector hold two differents data types
然后我尝试使用这种格式。
我在这篇文章中看到了两种方法:
在我的例子中:
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);对不起,我正在找关于这方面的文件,但我没有找到任何东西。
发布于 2017-03-10 22:26:23
您正在操作一个由对/元组组成的向量,即使它聚合了两个值,它仍然是std::vector的一个元素。这就是为什么你必须给你的向量一个包含两个聚合对象的对或一个元组:
vector_centroids.push_back({vec_normal, vec_centroid}); //pair如果您使用的是元组,请执行以下操作:
vector_centroids.push_back(std::make_tuple(vec_normal, vec_centroid)); //tuple发布于 2017-03-10 22:42:49
你能使用下面这样的结构吗:
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});
}https://stackoverflow.com/questions/42720588
复制相似问题