{"title": "C++ 代码:将 std::vector<pcl::PointCloudpcl::PointXYZRGB::Ptr> 内的指针复制到新指针数组", "description": "本代码演示如何创建一个与 std::vector<pcl::PointCloudpcl::PointXYZRGB::Ptr> 对象中指针个数相等的新指针数组,并将该向量中存储的指针赋值给新指针数组。代码中使用了 PCL 库,并展示了如何使用智能指针管理内存。", "keywords": "C++, PCL, 点云, 指针数组, 智能指针, 内存管理, 代码示例", "content": "#include \n#include \n#include <pcl/point_cloud.h>\n#include <pcl/point_types.h>\n\nint main() {\n // 创建一个 std::vector<pcl::PointCloudpcl::PointXYZRGB::Ptr> 对象\n std::vector<pcl::PointCloudpcl::PointXYZRGB::Ptr> clouds;\n\n // 添加一些数据到 clouds 中\n for (int i = 0; i < 5; i++) {\n pcl::PointCloudpcl::PointXYZRGB::Ptr cloud(new pcl::PointCloudpcl::PointXYZRGB);\n cloud->width = 100;\n cloud->height = 1;\n cloud->points.resize(cloud->width * cloud->height);\n clouds.push_back(cloud);\n }\n\n // 创建一个与 clouds 中指针个数相等的新指针数组\n pcl::PointCloudpcl::PointXYZRGB::Ptr* newPointers = new pcl::PointCloudpcl::PointXYZRGB::Ptr[clouds.size()];\n\n // 将 clouds 中的数据赋值给新指针数组\n for (size_t i = 0; i < clouds.size(); i++) {\n newPointers[i] = clouds[i];\n }\n\n // 打印新指针数组中的数据\n for (size_t i = 0; i < clouds.size(); i++) {\n std::cout << "Cloud " << i << " size: " << newPointers[i]->size() << std::endl;\n }\n\n // 删除新指针数组\n delete[] newPointers;\n\n return 0;\n}\n\n上述代码首先创建一个 std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> 对象 clouds,然后使用循环将一些数据添加到 clouds 中。\n\n接下来,代码创建了一个指针数组 newPointers,其大小与 clouds 中的指针个数相等。然后,通过循环将 clouds 中的指针赋值给 newPointers。\n\n最后,代码打印了 newPointers 中每个指针所指向的点云数据的大小,并删除了 newPointers。\n\n

C++ 代码:将 std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> 内的指针复制到新指针数组

原文地址: https://www.cveoy.top/t/topic/pSnl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录