c++ - 从 pcl::PointCloud 创建 pcl::PointCloud::Ptr

标签 c++ pointers point-cloud-library

我想知道这是否可能。我有一个功能:

 pcl::PointCloud<pcl::PointXYZRGB> createPointCloud(std::Vector<Nodes> input)

返回一个点云。我想知道是否可以获取这个点云,并制作一个指向它的拷贝的指针。 pcl 像这样指向云:

pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR(new pcl::PointCloud<pcl::PointXYZRGB>)

我试过这样做:

pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR(createPointCloud(nodeList))

这会导致一个非常明显的错误,即。 createPointCloud 不返回指向云的指针。

我也试过这个:

pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR = &createPointCloud(nodeList)

还有这个:

pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR(&createPointCloud(nodeList))

这会导致编译错误:“获取临时地址”

是让函数返回指针类型的唯一选择,还是有办法按照我的要求做?

编辑:

以下两个答案都是正确的,我已经授予 Jonathon 正确的勾号,因为他这次是第一个。

最佳答案

是的,使用 makeShared()方法。

关于c++ - 从 pcl::PointCloud 创建 pcl::PointCloud::Ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644429/

相关文章:

c++ - 使用 PointCloudLibrary 混淆 segFault 跟踪

c++ - __cxa_pure_virtual 的目的是什么?

c - 从 Conway 的生活中访问结构变量

point-cloud-library - 在 z 轴上旋转点云

c - 函数指针的指针值代表什么?

C 另一个指针的指针

c++ - spin() 函数未执行后的额外代码

c# - C# 中是否有与 IEnumerable<T> 等效的标准 C++?

c++ - glReadPixels 不适用于获取 OpenGL ES 1.0 的深度

c++ - 什么 Ruzzle 板包含最独特的单词?