创建stdvectorpclPointCloudpclPointXYZRGBPtr clouds内的指针个数的新指针并将clouds内的数据赋值给新创的各个指针的c++代码
以下是实现你所描述的C++代码:
#include <iostream>
#include <vector>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
int main() {
// 创建一个 std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> 对象
std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> clouds;
// 添加一些数据到 clouds 中
for (int i = 0; i < 5; i++) {
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
cloud->width = 100;
cloud->height = 1;
cloud->points.resize(cloud->width * cloud->height);
clouds.push_back(cloud);
}
// 创建一个与 clouds 中指针个数相等的新指针数组
pcl::PointCloud<pcl::PointXYZRGB>::Ptr* newPointers = new pcl::PointCloud<pcl::PointXYZRGB>::Ptr[clouds.size()];
// 将 clouds 中的数据赋值给新指针数组
for (size_t i = 0; i < clouds.size(); i++) {
newPointers[i] = clouds[i];
}
// 打印新指针数组中的数据
for (size_t i = 0; i < clouds.size(); i++) {
std::cout << "Cloud " << i << " size: " << newPointers[i]->size() << std::endl;
}
// 删除新指针数组
delete[] newPointers;
return 0;
}
上述代码首先创建一个 std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> 对象 clouds,然后使用循环将一些数据添加到 clouds 中。
接下来,代码创建了一个指针数组 newPointers,其大小与 clouds 中的指针个数相等。然后,通过循环将 clouds 中的指针赋值给 newPointers。
最后,代码打印了 newPointers 中每个指针所指向的点云数据的大小,并删除了 newPointers
原文地址: https://www.cveoy.top/t/topic/h9A4 著作权归作者所有。请勿转载和采集!