STL-vector清空的几种方法加代码梳理

在行人检测项目中遇到HOG+SVM计算时的内存管理问题,引发对STL-vector清空方法的研究。文章总结了4种方法:1) 赋值操作符重载,不回收空间;2) clear()方法,清空元素但不回收空间;3) erase()方法,同样不回收空间;4) swap()方法,既能清空元素又能回收空间。并提供了GitHub链接以查看详细代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STL-vector清空的几种方法加代码梳理

在做行人检测的项目(HOG+SVM方法)时,因为要计算每幅图像的hog描述子向量,通过调用hog的compute方法,需要传入一个描述子向量:

HOGDescriptor hog;
vector<float> descriptors;
hog.compute(src/*inputImage*/, descriptors, Size(8,8)/*stride of detection window*/);

在每次运行hog.compute()方法后,本次循环结束,需要释放本次循环声明的变量,并析构他的内存空间,也就是析构descriptors向量的空间,就在这个时候程序莫名报错了,跟踪发现是vector析构时出错,在声明descriptors时给定分配空间大小后问题解决:

HOGDescriptor hog;
vector<float> descriptors(4000)//64*128图像的默认hog特征参数的描述子向量长度为3780;
hog.compute(src/*inputImage*/, descriptors, Size(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值