C++ STL Heap算法
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
  vector<int> vec1;
  vector<int>::iterator vec_iter1;
  for (int k=0;k<10;k++)
  {
    vec1.push_back(rand());
  }
  for (vec_iter1 = vec1.begin();vec_iter1 != vec1.end();++vec_iter1)
  {
    cout << *vec_iter1 << "  ";
  }
  cout << endl;
  cout << "-------------------------------------------------------" << endl;
make_heap(vec1.begin(), vec1.end());
  for (vec_iter1 = vec1.begin(); vec_iter1 != vec1.end(); ++vec_iter1)
  {
    cout << *vec_iter1 << "  ";
  }
  cout << endl;
  cout << "-------------------------------------------------------" << endl;
  //取出堆中最大的数放到最后面,剩下的重新排
  pop_heap(vec1.begin(), vec1.end());
  for (vec_iter1 = vec1.begin(); vec_iter1 != vec1.end(); ++vec_iter1)
  {
    cout << *vec_iter1 << "  ";
  }
  cout << endl;
  cout << "-------------------------------------------------------" << endl;
  //删除最后一个
  vec1.pop_back();
  for (vec_iter1 = vec1.begin(); vec_iter1 != vec1.end(); ++vec_iter1)
  {
    cout << *vec_iter1 << "  ";
  }
  cout << endl;
  cout << "-------------------------------------------------------" << endl;
  vec1.push_back(100);
  for (vec_iter1 = vec1.begin(); vec_iter1 != vec1.end(); ++vec_iter1)
  {
    cout << *vec_iter1 << "  ";
  }
  cout << endl;
  cout << "-------------------------------------------------------" << endl;
  push_heap(vec1.begin(),vec1.end());
  for (vec_iter1 = vec1.begin(); vec_iter1 != vec1.end(); ++vec_iter1)
  {
    cout << *vec_iter1 << "  ";
  }
  cout << endl;
  cout << "-------------------------------------------------------" << endl;
  sort_heap(vec1.begin(), vec1.end());
  for (vec_iter1 = vec1.begin(); vec_iter1 != vec1.end(); ++vec_iter1)
  {
    cout << *vec_iter1 << "  ";
  }
  cout << endl;
  cout << "-------------------------------------------------------" << endl;
  system("pause");
  return 0;
}
=============================================================
41 18467 6334 26500 19169 15724 11478 29358 26962 24464
-------------------------------------------------------
29358  26962  15724  26500  24464  6334  11478  41  18467  19169
-------------------------------------------------------
26962  26500  15724  19169  24464  6334  11478  41  18467  29358
-------------------------------------------------------
26962  26500  15724  19169  24464  6334  11478  41  18467
-------------------------------------------------------
26962  26500  15724  19169  24464  6334  11478  41  18467  100
-------------------------------------------------------
26962  26500  15724  19169  24464  6334  11478  41  18467  100
-------------------------------------------------------
41  100  6334  11478  15724  18467  19169  24464  26500  26962
-------------------------------------------------------
请按任意键继续. . .
C++ STL Heap算法的更多相关文章
- STL——heap结构及算法
		
heap(隐式表述,implicit representation) 1. heap概述 : vector + heap算法 heap并不归属于STL容器组件,它是个幕后英雄,扮演priority q ...
 - STL -- heap结构及算法
		
STL -- heap结构及算法 heap(隐式表述,implicit representation) 1. heap概述 : vector + heap算法 heap并不归属于STL容器组件,它是个 ...
 - STL heap部分源代码分析
		
本文假设你已对堆排序的算法有主要的了解. 要分析stl中heap的源代码的独到之处.最好的办法就是拿普通的代码进行比較.话不多说,先看一段普通的堆排序的代码: //调整大顶堆.使得结构合理 void ...
 - 常用的STL查找算法
		
常用的STL查找算法 <effective STL>中有句忠告,尽量用算法替代手写循环:查找少不了循环遍历,在这里总结下常用的STL查找算法: 查找有三种,即点线面: 点就是查找目标为单个 ...
 - 【STL】帮你复习STL泛型算法 一
		
STL泛型算法 #include <iostream> #include <vector> #include <algorithm> #include <it ...
 - STL基础--算法(排序)
		
STL排序算法 排序算法要求随机访问迭代器 vector, deque, container array, native array 例子 vector<int> vec = {9,1,1 ...
 - C++复习:STL之算法
		
算法 1算法基础 1.1算法概述 算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. <algorithm> ...
 - STL所有算法简介 (转) http://www.cnblogs.com/yuehui/archive/2012/06/19/2554300.html
		
STL所有算法简介 STL中的所有算法(70个) 参考自:http://www.cppblog.com/mzty/archive/2007/03/14/19819.htmlhttp://hi.baid ...
 - 初探STL之算法
		
算法 STL算法部分主要由头文件<algorithm>,<numeric>,<functional>组成.要使用 STL中的算法函数必须包括头文件<algor ...
 
随机推荐
- IntelliJ IDEA详细配置和使用教程(适用于Java开发人员)
			
关闭Intellij IDEA自动更新在File->Settings->Appearance & Behavior->System Settings->Updates下 ...
 - 剑指Offer的学习笔记(C#篇)-- 翻转单词的序列
			
题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“student ...
 - redis过期机制及排行榜
			
redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略.redis 提供 6种数据淘汰策略: volatile-lru:从已设置过期时间的数据集(server.db[i].expire ...
 - Dapper+Mysql 使用LIKE模糊查询写法踩坑
			
LIKE '%@Title%' 会解析成'%'@Title'%' 这里用拼接也是不行的'%'+@Title+'%' 只能用MySQL函数方法拼接 public dynamic GetListByFil ...
 - 场效应管种类-场效应管N、P沟道与增强、耗尽型工作原理等知识详解   如何选用晶体三极管与场效应管的技巧
			
http://www.kiaic.com/article/detail/1308.html 场效应管种类场效应管 场效应晶体管(Field Effect Transistor缩写(FET))简称场效应 ...
 - Jquery选择器小结
			
1.基本选择器 $("#id") //ID选择器 $("div") //元素选择器 $(".classname") //类选择器 $(&qu ...
 - Spring boot dubbo+zookeeper 搭建------基于gradle项目的消费端与服务端分离实战
			
1. Dubbo简介 Dubbo是Alibaba开源的分布式框架,是RPC模式的一种成熟的框架,优点是可以与Spring无缝集成,应用到我们的后台程序中.具体介绍可以查看Dubbo官网. 2. Why ...
 - 智能指针share_ptr记录
			
shared_ptr 是一个共享所有权的智能指针,允许多个指针指向同一个对象.shared_ptr 对象除了包括一个对象的指针,还包括一个引用计数器.当每给对象分配一个share_ptr的时候,引用计 ...
 - 【题解】P3069 [USACO13JAN]牛的阵容Cow Lineup-C++
			
题目传送门 思路这道题目可以通过尺取法来完成 (我才不管什么必须用队列)什么是尺取法呢?顾名思义,像尺子一样取一段,借用挑战书上面的话说,尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后 ...
 - Oracle 物理结构(三) 文件-参数文件
			
一.参数文件介绍 Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的, 决定了数据库的物理 结构.内存.数据库的限制及系统大量的默认值.数据库的 ...