巧妙的设计stl中的比较函数,以避免不必要的cpu开销

在stl algorithm.h中,常利用一些排序操作,比如通过vector实现一个堆。
如果堆的每个元素是自定义结构,也就是,自己实现的类作为堆的基本元素,
那么make_heap和push_heap,pop_heap就需要开发者提供自己的比较函数。
bool __cmp(value &v1 ,value & v2).
在stl的内部实现中,当这个_cmp判定为true时,就需要调整heap,所以如果
v1 == v2 返回 true。那么恭喜你,掉进了坑里。如果返回false,则能够节省不小的开销,尤其当你的堆用在一个循环内的时候。

ps.在stl中类似heap的结构,最好使用指针作为基本元素,否则数据调整的时候,
拷贝的量是很大的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值