本文主要是介绍巧妙的设计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的结构,最好使用指针作为基本元素,否则数据调整的时候, 拷贝的量是很大的。
这篇关于巧妙的设计stl中的比较函数,以避免不必要的cpu开销的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!