我有一个向量来存储点云的指针:
std::vector<pcl::PointCloud<PointType>::Ptr> List;
在一个循环中,我尝试在其中推入push_back点云指针。
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
while(condition)
{...
List.push_back(cloud);
cloud->clear();
}
它添加了点云,但是在每次迭代时,先前存储在向量中的所有值都被新添加的值替换。
因此,可以说我添加的最后一个点云的大小为400,并且在迭代中添加了5个点云。
循环后,如果我检查存储的5个云的大小,结果将为400400400400400
有谁知道如何解决它?
谢谢
看起来非常像您只创建一个点云,然后在循环的每次迭代中,修改点云,向该向量添加一个(另一个)指针,然后重复。
换句话说,所有矢量条目都指向同一个云,因此,所有修改当然都可以在所有条目中看到。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句