LVI-SAM学习笔记3:clear()和shrink_to_fit()函数

    void freeCloudInfoMemory()
    {
        cloudInfo.startRingIndex.clear();
        cloudInfo.startRingIndex.shrink_to_fit(); // 从原来最大容量减少到现在所需要的容量(释放数组的容量)
        cloudInfo.endRingIndex.clear();
        cloudInfo.endRingIndex.shrink_to_fit();
        cloudInfo.pointColInd.clear();
        cloudInfo.pointColInd.shrink_to_fit();
        cloudInfo.pointRange.clear();
        cloudInfo.pointRange.shrink_to_fit();
    }

1.clear():仅仅将容器中的元素释放掉,会导致size=0,但是容器容量capacity是不会变的,即数组的占用内存没有发生变化。
2.shrink_to_fit():将容器的容量capacity设置为容器中元素的size,即,收缩到合适的容量。
另外还有一个函数 swap() 是将容器底层的动态数组指针进行交换,然后把各自的size以及capacity的值进行交换。

在LVI-SAM中cloudinfo是LVI-SAM自定义格式的点云,包含了大量的数据内容,需要占用大量的内存空间。imageProjection节点把原始的无序点云,进行了去畸变和有序化,并且设置了大量的索引用来方便遍历查找特征点,还保留了距离信息用来筛除一些特殊点云点。这些数据对于featureExtraction节点是必要的,但是对于后续的过程没有意义,而且重新创建一个cloudinfo实例是不方便的,因此在发布话题之前,lvi-sam对cloudInfo进行了一次**“瘦身”,以提高后面的运行效率**。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JaydenQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值