【发布时间】:2015-04-14 14:50:03
【问题描述】:
我有存储点云指针的向量:
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 个云的大小,结果将是 400 400 400 400 400
有人知道如何解决吗?
谢谢
【问题讨论】:
-
"...但是在每次迭代中..."我没有看到循环,那么我们如何识别问题?
-
看起来你一遍又一遍地重用同一个指针,并在循环的每次迭代中更改指向的对象。
标签: c++ loops pointers vector point-cloud-library