std::priority_queue的性能
2011-08-31 14:35
1886 查看
一直以我对std::priority_queue的感觉是性能不高,因为公司一个产品在实现定时器队列的时候使用了std::multimap,为什么不用std::priority_queue,可能是由于性能不高
吧,随便下了一个结论就没有深入去思考了。
今天有时间做了一个实验,结果出乎所料,以下是测试结果:
从上面的测试结果可以得出以下的结论:
1)在push操作的时候map和set的实现效率是一样的,三者中priority queue的效率最好;
2)在pop操作的时候map和set的实现效率是一样的,当测试的规模在100000以下的时候priority queue的效率还是最好的,当大于100000的时候priority queue的效率开始变差
3)总结论:由于在产品运行的场景中队列中存储的对象个数在100000以下,所以使用std::multimap问题不大,但是从这里的分析并结合使用中的方便性来看,选择priority queue似乎是一个更好的选择。
吧,随便下了一个结论就没有深入去思考了。
今天有时间做了一个实验,结果出乎所料,以下是测试结果:
从上面的测试结果可以得出以下的结论:
1)在push操作的时候map和set的实现效率是一样的,三者中priority queue的效率最好;
2)在pop操作的时候map和set的实现效率是一样的,当测试的规模在100000以下的时候priority queue的效率还是最好的,当大于100000的时候priority queue的效率开始变差
3)总结论:由于在产品运行的场景中队列中存储的对象个数在100000以下,所以使用std::multimap问题不大,但是从这里的分析并结合使用中的方便性来看,选择priority queue似乎是一个更好的选择。
相关文章推荐
- 笔试算法题(57):基于堆的优先级队列实现和性能分析(Priority Queue based on Heap)
- std::priority_queue
- 用C++ std::priority_queue 实现哈夫曼算法
- std::priority_queue使用示例 STL
- std::priority_queue
- 对比标准二叉堆 左偏树 和 std :: priority_queue
- std::priority_queue
- 【C++ STL应用与实现】13: 如何使用std::queue和std::priority_queue
- C++/C++11中std::priority_queue的使用
- hdu 1053 (huffman coding, greedy algorithm, std::partition, std::priority_queue )
- 【优先队列】【链表】【priority_queue】【list】hdu 1434
- C++中priority_queue的比较函数重载的两种方式
- STL中priority_queue的使用注意事项
- priority_queue的应用
- c++11 container liber: std::queue std::map std::vector std::unique_ptr
- C++ STL中set/map 与 priority_queue 中greater、less 的用法区别
- STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)
- priority_queue的用法
- POJ_2312_BFS:priority_queue -- Battle City
- STL之 stack/queue/priority_queue