STL algorithm算法make_heap和sort_heap(32)
来源:互联网 发布:js delete 编辑:程序博客网 时间:2024/06/06 00:39
make_heap原型:
std::make_heap
template <class RandomAccessIterator> void make_heap (RandomAccessIterator first, RandomAccessIterator last);
template <class RandomAccessIterator, class Compare> void make_heap (RandomAccessIterator first, RandomAccessIterator last, Compare comp );
并将堆存放到原来的容器内。
将范围内的元素建成堆可以快速地取得其范围内的最大值,并且支持快速插入元素。
一个简单的例子:
#include <iostream>#include <algorithm>#include <vector>using namespace std;void makeheap(){ vector<int> vi{1,7,5,6,8,9,3}; cout<<"at first vi="; for(int i:vi) cout<<i<<" "; cout<<endl; make_heap(vi.begin(),vi.end()); cout<<"after make_heap(vi.begin(),vi.end())\nvi="; for(int i:vi) cout<<i<<" "; cout<<endl;}运行结果:
看到如果将其画成一个堆的变化那就是
sort_heap原型:
std::sort_heap
template <class RandomAccessIterator> void sort_heap (RandomAccessIterator first, RandomAccessIterator last);
template <class RandomAccessIterator, class Compare> void sort_heap (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
使用operator<进行比较,前提是范围内的元素已经是一个堆了,否则会出错!
排序后序列将失去堆的属性!
一个简单的例子:
#include <iostream>#include <algorithm>#include <vector>using namespace std;void sortheap(){ vector<int> vi{1,7,5,6,8,9,3}; cout<<"at first vi="; for(int i:vi) cout<<i<<" "; cout<<endl; make_heap(vi.begin(),vi.end()); cout<<"after make_heap(vi.begin(),vi.end())\nvi="; for(int i:vi) cout<<i<<" "; cout<<endl; sort_heap(vi.begin(),vi.end()); cout<<"after sort_heap(vi.begin(),vi.end())\nvi="; for(int i:vi) cout<<i<<" "; cout<<endl;}
运行结果:
——————————————————————————————————————————————————————————————————
//写的错误或者不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。
转载请注明出处:http://blog.csdn.net/qq844352155
author:天下无双
Email:coderguang@gmail.com
2014-9-17
于GDUT
——————————————————————————————————————————————————————————————————
0 0
- STL algorithm算法make_heap和sort_heap(32)
- 【STL】Heap算法——push_heap、pop_heap、sort_heap、make_heap
- STL---heap概述,make_heap,sort_heap,pop_heap,push_heap。
- STL---heap概述,make_heap,sort_heap,pop_heap,push_heap
- STL---heap概述,make_heap,sort_heap,pop_heap,push_heap
- STL---heap概述,make_heap,sort_heap,pop_heap,push_heap。
- STL---heap概述,make_heap,sort_heap,pop_heap,push_heap
- c++ make_heap, pop_heap, push_heap, sort_heap详解
- 算法之旅,直奔<algorithm>之二十 make_heap
- STL algorithm算法is_heap和is_heap_until(25)
- STL algorithm算法is_sorted和is_sorted_until(28)
- STL algorithm算法lower_bound和upper_bound(31)
- STL源码解析 - sort_heap
- priority_queue 调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法
- C++中堆的应用:make_heap, pop_heap, push_heap, sort_heap, priority_queue
- C++中堆的应用:make_heap, pop_heap, push_heap, sort_heap
- STL algorithm算法集合
- 【STL】algorithm算法介绍
- MATLAB读或者写excel
- cout < < __FILE__ < < __LINE__ < < __FUNCTION__ < < endl
- HDU 5001 概率DP || 记忆化搜索
- C语言程序学习(八)笔记
- 我在这里公务员在线模拟考试系统-分达教育做公务员模拟题
- STL algorithm算法make_heap和sort_heap(32)
- 单链表
- 软件性能测试基础
- Android中View转换为Bitmap及getDrawingCache=null的解决方法
- python系列之数据处理编程实例
- 体验安装金蝶K/3 Wise 13.0(图文)
- 原来泛型很简单
- js 复制到剪贴板--ZeroClipboard 2.0
- 整数数组的组合问题