c++ stl之pirority_queue
1.模板原型
template<class T, class Sequence=vector<T>, class Compare=less<typename Sequence::value_type>>
class priority_queue
{
public:typedef typename Sequence::value_type value_type;typedef typename Sequence::size_type size_type;typedef typename Sequence::reference reference;typedef typename Sequence::const_reference const_reference;
protected:Sequence c;Compare comp;
public:priority_queue(): c() {};explicit priority_queue(const Compare& x): c(), comp() {}template<class InputInterator>priority_queue(InputIterator first, InputIterator last, const Compare& x):c(first, last), comp(x) {make_heap(c.begin(), c.end(), comp);}pirority_queue(InputItrator first, InputIterator last):c(first, last){make_heap(c.begin(), c.end(), comp);}};
我们看看我们的top是啥
const_reference top() const {return c.front();}
就是vector的头部,然后让咱们看看push是啥
void push(const value_type& x)
{__STL_TRY {c.push_back(x);push_heap(c.begin(), c.end(), comp);}}
相当于重建了一个堆, 测试如下
()
c++ stl之pirority_queue相关推荐
- STL库(C++11)提供的异步执行方法的方式
在进行并发编程的时候难免会遇到异步执行时候,现代C++标准库提供了几种异步执行的方式,本文收集整理了一下,以备将来翻阅. Thread方式 Thread 是STL提供的一种快捷创建线程的方式,极大方便 ...
- C++ 笔记(24)— STL map 类(map实例化、插入、查找、删除)
1. STL 映射类简介 map 和 multimap 是键-值对容器,支持根据键进行查找,区别在于,后者能够存储重复的键,而前者只能存储唯一的键. 为了实现快速查找, STL map 和 multi ...
- C++ 笔记(23)— STL vector 类(实例化 vector、末尾插入、指定位置插入、数组方式访问元素、指针方式访问元素、删除元素、大小与容量区别)
1. vector 特点 vector 是一个模板类,提供了动态数组的通用功能,具有如下特点: 在数组末尾添加元素所需的时间是固定的,即在末尾插入元素的所需时间不随数组大小而异,在末尾删除元素也如此: ...
- C++ 笔记(22)— STL string 类(字符串赋值、访问、拼接、查找、翻转、大小写转换)
1. 实例化和赋值 STL string #include <string> #include <iostream>int main () {using namespace s ...
- C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)
C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...
- STL map 简介
STL map 简介 转载于:http://www.cnblogs.com/TianFang/archive/2006/12/30/607859.html 1.目录 map简介 map的功能 使用ma ...
- 【STL源码剖析读书笔记】【第5章】关联式容器之hashtable
1.hashtable在插入.删除.搜寻操作上具有"常数平均时间"的表现,不依赖输入元素的随机性. 2.hashtable通过hashfunction将元素映射到不同的位置,但当不 ...
- C++ stl vector介绍
转自: STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if ...
- STL vector list deque区别与实现
1 vector 向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储.支持不指定vector大小的存储.STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacitu ...
最新文章
- 陈雷教授在线受聘清华大学杰出访问教授
- 给定一组查找关键字(19,14,23,1,65,20,84,27,55,11,10,79) 哈希函数为:H(key)=key % 13, 哈希表长为m=15,设每个记录的查找概率相等。【MOOC】
- 听说这是和女朋友住一起后的现象之一
- Java2Days 2012:Java EE
- 看《烈火雄心》 --当大家从火里出来,我们进去
- Apache Flink 1.9.0 为什么将支持 Python API ?
- three 实现绕物体旋转,卫星绕星球旋转
- 58同城 | Embedding技术在房产推荐中的应用
- 基于51单片机的跳一跳游戏程序设计(C语言)
- php采标教程,国内液压与气动行业标准大全
- python读取像素值
- 优动漫PAINT实用宝典(图层篇)——栅格图层
- 电脑设置u盘启动方法
- NTFS文件系统详解
- edm html超链接,EDM邮件中的html/css兼容性问题
- python爬虫实训总结报告_python爬虫简单总结(一)
- 处处吻(粤语汉字英译)
- 公司的“奋斗者协议”签不签?网友吐槽:你敢让我签我就敢辞
- 如何实现一个下载进度条/播放进度条
- DPC创始人Bard:DPC公链基于dpos算法开发的一条支付公链