温故而知新—heap
堆:堆不是STL中的容器组件,堆有分为大根堆和小根堆,堆的底层实现可以用优先队列进行实现。底层的容器实际上是一个vector。在C++数据结构中,堆也可用数组来实现。对于使用C++的开发人员来说,stl组件的algorithm.h头文件中提供了一下操错堆的方法。具体的方法如下:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(int argc, char *argv[]) {
std::cout<<"In this case we'll show the operator of heap"<<std::endl;
int iArray[]={1,2,3,4,5,6,7};
std::vector<int> myvec(iArray,iArray+7);
std::cout<<"show the elements of myvec...."<<std::endl;
for(std::vector<int>::iterator it = myvec.begin();it != myvec.end();it++){
std::cout<<*it<<" ,";
}
std::cout<<"\n"<<"now we'll create the heap"<<endl;
make_heap(myvec.begin(), myvec.end());
for(std::vector<int>::iterator it = myvec.begin();it != myvec.end();it++){
std::cout<<*it<<" ,";
}
std::cout<<"\n"<<"now we'll pop the element...."<<std::endl;
pop_heap(myvec.begin(), myvec.end());
myvec.pop_back();
for(std::vector<int>::iterator it = myvec.begin();it != myvec.end();it++){
std::cout<<*it<<" ,";
}
std::cout<<"\n"<<"now we'll push the element...."<<std::endl;
myvec.push_back(123);
push_heap(myvec.begin(), myvec.end());
for(std::vector<int>::iterator it = myvec.begin();it != myvec.end();it++){
std::cout<<*it<<" ,";
}
std::cout<<"\n"<<"now we'll sort the element...."<<std::endl;
sort_heap(myvec.begin(), myvec.end());
for(std::vector<int>::iterator it = myvec.begin();it != myvec.end();it++){
std::cout<<*it<<" ,";
}
std::cout<<"\n"<<"now the example is end...."<<std::endl;
return 0;
}
温故而知新—heap的更多相关文章
- java head space/ java.lang.OutOfMemoryError: Java heap space内存溢出
上一篇JMX/JConsole调试本地还可以在centos6.5 服务器上进行监控有个问题端口只开放22那么设置的9998端口 你怎么都连不上怎么监控?(如果大神知道还望指点,个人见解) 线上项目出现 ...
- Java 堆内存与栈内存异同(Java Heap Memory vs Stack Memory Difference)
--reference Java Heap Memory vs Stack Memory Difference 在数据结构中,堆和栈可以说是两种最基础的数据结构,而Java中的栈内存空间和堆内存空间有 ...
- [数据结构]——堆(Heap)、堆排序和TopK
堆(heap),是一种特殊的数据结构.之所以特殊,因为堆的形象化是一个棵完全二叉树,并且满足任意节点始终不大于(或者不小于)左右子节点(有别于二叉搜索树Binary Search Tree).其中,前 ...
- Windbg Extension NetExt 使用指南 【3】 ---- 挖掘你想要的数据 Managed Heap
摘要 : NetExt中有两个比较常用的命令可以用来分析heap上面的对象. 一个是!wheap, 另外一个是!windex. !wheap 这个命令可以用于打印出heap structure信息. ...
- JAVA Shallow heap & Retained heap
最近在研究内存泄漏的问题,在使用MAT工具中发现了Shallow heap & Retained heap,不懂. 然后在网上找了一些资料. Shallow Size 对象自身占用的内存大小, ...
- 笔记:程序内存管理 .bss .data .rodata .text stack heap
1.未初始化的全局变量(.bss段) bss段用来存放 没有被初始化 和 已经被初始化为0 的全局变量.如下例代码: #include<stdio.h> int bss_array[102 ...
- STL heap usage
简介 heap有查找时间复杂度O(1),查找.插入.删除时间复杂度为O(logN)的特性,STL中heap相关的操作如下: make_heap() push_heap() pop_heap() sor ...
- Nodemanager Out of heap memory[fix bug全过程]
问题: 自己写了一个yarn上的application,发现nodemanager过段时间,会out of memory退出,把nodemanager的heap memory从1G增大到2G也是无法避 ...
- Git使用出错:Couldn‘t reserve space for cygwin‘s heap, Win32
今天使用Git在命令行下更新代码遇到了问题,起初觉得是自己安装某软件导致冲突,从网上搜索了一下找到类似问题,成功解决问题. 错误信息如下: E:\storm-sql>git pull origi ...
随机推荐
- Google2016 面试题 吹气球 区间dp
题意:有n个气球,编号为0到n-1,每个气球都有一个分数,存在nums数组中.每次吹气球i可以得到的分数为 nums[left] * nums[i] * nums[right],left和right分 ...
- 下载visual studio 的离线包
我们知道,visual studio是微软发布的软件开发的集成平台,十分好用,可以说是目前最好用的软件编辑工具. 最新版的是visual studio 2017,但是在微软的官网上只支持下载在线安装器 ...
- nignx笔记1
上图是单版的架构,理论一个tomcat并发就200到300,经过优化后的最多500,这很明显容量低,而且出现单点故障后应用服务就不可以访问了,比如tomcat,这样明显对于多并发是不行的. 那么如果我 ...
- sqoop:mysql和Hbase/Hive/Hdfs之间相互导入数据
1.安装sqoop 请参考http://www.cnblogs.com/Richardzhu/p/3322635.html 增加了SQOOP_HOME相关环境变量:source ~/.bashrc ...
- 远程控制你的智能电视,按键|输入|安装App等都已实现,已开源!
一.序 Hi,大家好,我是承香墨影! 智能电视或者智能盒子,不知道大家了解多少? 这两年各大厂商生产的电视设备,基本上都是搭载的 Android 系统.既然电视本身就是 Android 系统的,我们也 ...
- Error Code: 1054. Unknown column 'age' in 'user'
1.错误描述 10:28:20 alter table user modify age int(3) after sex Error Code: 1054. Unknown column 'age' ...
- Linux显示系统日期
Linux显示系统日期 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ date 2015年 01月 21日 星期三 20:37:39 CST
- windows下键盘常用快捷键整理
以下快捷键均在win7环境下测试有效: 声明:本博文由多篇博文经实测整理而出. win键相关的快捷键多用于桌面场景,如开起资源管理器.切换任务窗口.最大化最小化窗口等等. 场景一: 1. 任何情况下想 ...
- hihocoder Challenge 29 B.快速乘法
这题的题解和我写的有一拼,异常简洁,爆炸. 这题思路dp 表示的是讨论到第位,并比原数的前n位多了 显然j只能取0,1,毕竟2进制嘛 之后转移就好了,注意下面两个重要状态 #include <c ...
- vue cli创建的项目 当你后期使用了ES6语法,如何解决浏览器兼容问题
最近开发了一个项目,开发过程中,由于需要使用了async await ,于是发现,只有少数的浏览器支持,极大多数的浏览器是不支持这玩意的,在网上各种找解决方案,基本都是失败,最后总结了两个方案之后,尝 ...