PriorityQueue&&Function overload

用 STL 里面堆算法实现的与真正的STL里面的 priority_queue用法相似的priority_queue

#include <iostream>
    #include <algorithm>
    #include <vector>
    
    using namespace std;
    
    class priority_queue
    {
        private:
            vector<int> data;
             
        public:
            void push( int t ){
                data.push_back(t);
                push_heap( data.begin(), data.end());
            }
             
            void pop(){
                pop_heap( data.begin(), data.end() );
                data.pop_back();
            }
             
            int top() { return data.front(); }
            int size() { return data.size(); }
            bool empty() { return data.empty(); }
    };

priority_queue常用的函数:

top:读入顶端元素
    pop:删除顶端元素
    size:返回元素个数
    push:加入一个元素
    empty:如果为空,返回true
优先级队列(priority_queue)的实现方式是堆(heap), 默认是输出最大值
输出最小值, 需要指定参数, priority_queue<int, vector<int>, greater<int> >

#include <stdio.h>  
      
        #include <queue>  
        #include <vector>  
        #include <functional>  
              
        using namespace std;  
              
        int main(void)  
        {  
            priority_queue<int, vector<int>, greater<int> > pque;  
              
            pque.push(3);  
            pque.push(5);  
            pque.push(1);  
            pque.push(4);  
              
            while (!pque.empty()) {  
                printf("%d ", pque.top());  
                pque.pop();  
            }  
            printf("\n");  
              
            return 0;  
        }

C++的函数重载
    http://www.cnblogs.com/skynet/archive/2010/09/05/1818636.html
    http://www.cnblogs.com/yshl-dragon/archive/2013/05/10/3067161.html

时间: 2024-11-02 01:00:48

PriorityQueue&&Function overload的相关文章

Function Overload

Pascal Code 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556   unit GetOverload; interface uses   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

JavaScript 高级程序设计(第3版)笔记——chapter3:基本概念(函数部分)

3.7函数 3.7.1 理解参数 ECMAScript 函数不介意传递进来多个参数,也不在乎传递进来的参数是什么数据类型.因为在 ECMAScript 中的参数在内部是用一个数组来表示的.在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数. 命名的参数只提供便利,但不是必需的. arguments 对象可以与命名参数一起使用. arguments对象的值永远与对应命名参数的值保持同步.不过,这并不是说读取这两个值会访问相同的内存空间.它们的内存空间是独立的

跨平台渲染框架尝试 - Texture管理

纹理是渲染器重要的资源,也是比较简单的资源.本文将详细讨论纹理资源的管理. 在资源管理概述中提到,资源就是一堆内存和CPU与GPU的访问权限.纹理管理在资源管理之上,要负责如何使用者一堆内存构造纹理对象,并告诉渲染器如何使用平台相关的纹理对象.下面,我们开始详细论述. 1. 纹理资源 首先纹理资源是GPU可以使用到的资源.它与Buffer资源不同的地方在于,相邻像素的插值计算中,纹理比Buffer简单并快得多,因为有相应的硬件实现.纹理资源字面意义上就像是一张像素图,但它不仅限于二维的像素的图,

【转】 C++模板详解

C++模板 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数.返回值取得任意类型. 模板是一种对类型进行参数化的工具: 通常有两种形式:函数模板和类模板: 函数模板针对仅参数类型不同的函数: 类模板针对仅数据成员和成员函数类型不同的类. 使用模板的目的就是能够让程序员编写与类型无关的代码.比如编写了一个交换两个整型int 类型的swap函数,这个函数就只能实现int 型,对double,字符这些类型无法实现,要实现这些类型

[email&#160;protected] GDB调试

正文转自:http://www.cppblog.com/lucency/archive/2012/08/09/59214.html 之前在网上搜索了好久使用sublime调试C和C++的文章,但是徒劳无功:后来才醒悟sublime下的调试C/C++其实和命令行中调试程序是一样的,所以即使是装了sublime GDB后,一样是要依据gdb手册那种调试步骤的. 正文: 这篇文章基本上是摘自gdb手册,除此之外就是加了实际的代码样例,这样可以更清楚的看到一些命令的执行效果.当然,这儿不会涉及到所有的g

C++基础总结

1. 4 const和#define的区别 对比加深 C++ 中的const 常量类似于宏定义 const int c = 5; ≈ #define c 5 C++ 中的const 常量与宏定义不同 const常量是由编译器处理的,提供类型检查和作用域检查 宏定义由预处理器处理,单纯的文本替换 2. C语言中的const 变量 C语言中 const变量是只读变量,有自己的存储空间 C++中的const 常量 可能分配存储空间,也可能不分配存储空间 当const 常量为全局,并且需要在其它文件中使

C++ 模板详解(二)(转)

四.类模板的默认模板类型形参 1.可以为类模板的类型形参提供默认值,但不能为函数模板的类型形参提供默认值.函数模板和类模板都可以为模板的非类型形参提供默认值. 2.类模板的类型形参默认值形式为:template<class T1, class T2=int> class A{};为第二个模板类型形参T2提供int型的默认值. 3.类模板类型形参默认值和函数的默认参数一样,如果有多个类型形参则从第一个形参设定了默认值之后的所有模板形参都要设定默认值,比如template<class T1=

Boost 1.61.0 Library Documentation

http://www.boost.org/doc/libs/1_61_0/ Boost 1.61.0 Library Documentation Accumulators Framework for incremental calculation, and collection of statistical accumulators. Author(s): Eric Niebler First Release: 1.36.0 Standard: Categories: Math and nume

[C/C++不常见语法特性]_[初级]_[左值-右值-lvalue-rvalue]

参考:1. http://en.cppreference.com/w/cpp/language/value_category   << Value categories >> 2. https://msdn.microsoft.com/en-us/library/dd293668.aspx   << Rvalue Reference Declarator: && >>3. https://msdn.microsoft.com/en-us/li