顺序表插入与删除

在这里插入图片描述

如果要再第三元素的地方插入的话要把第三个元素整体往后移,把新元素插入第三个位置

eg:
在这里插入图片描述

在这里插入图片描述

整个长度为5

由于要再第三个位置插入数据元素三,所以j=5for循环所负责的是把三号位置的数据元素整体往后移一位

把数据元素放在第三个位置实质是放在数组下标为2的位置上

再进行相关操作中一定要进行合法性判断避免插入位置前空间有多余,所以用进行bool运算来判定

在这里插入图片描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LjT79656-1615982738729)(C:\Users\mo’mo\AppData\Roaming\Typora\typora-user-images\image-20210317184912715.png)]

插入操作中的时间复杂度

运算时间发复杂度一定要关注最深层循环语句的执行次数与问题规模n的关系

插入的循环次数与插入的位置有关

在这里插入图片描述

删除操作

删除操作有两步,第一步是要删除哪个顺序表第二个是删除顺序表中的哪个元素

在这里插入图片描述

注意第一行中e前面加了取地址符,表示要在地址上进行删除,要删除L上的第三个元素,先把第三个元素引到e变量所在的内存区域中后面的值前移。

删除操作的时间复杂度和插入操作的时间复杂度类似

总结

在这里插入图片描述

pcl::PointCloud<pcl::PointXYZ> pointcloudoutput;
  
  // Resize point cloud to hold the same number of points as the input cloud首先调整输出云的大小,以容纳与输入云相同数量的点。
  pointcloudoutput.resize(pointcloudinput.size());
  
  // Iterate over all points in the input cloud遍历输入云中的所有点
  for (std::size_t i = 0; i < pointcloudinput.size(); ++i)
  {
    // Add the translation vector to each point to get the translated point将平移向量添加到每个点以获得平移点。
    pcl::PointXYZ translated_point = pointcloudinput[i];
    translated_point.x += translation_vector(2);
    translated_point.y += translation_vector(0);
    translated_point.z += translation_vector(5);
    
    // Add the translated point to the output cloud我们将每个平移后的点添加到输出云中
    pointcloudoutput[i] = translated_point;
  }
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐