queue/priority_queue笔记

需要头文件#include <queue>

queue<int> q;

q.push(12);

while(!q.empty() )

{

cout << q.front() <<endl;

q.pop();

}

priority_queue <int>  q;   //默认按照从大到小排序

q.push(1);

q.push(2);

while(!q.empty() )

{

cout <<q.top() <<endl;

q.pop();

}

priority_queue<int, vector<int> , greater<int> > q; //按照从小到大的顺序

q.push (23);

q.push(22);

q.push (2);

while(!q.empty() )

{

cout << q.top() << endl;

q.pop();

}

对于自定义的对象,需要自己实现比较操作

struct Score
{
    int score_;
    string name_;

    Score(int score, const string name)
        :score_(score), name_(name)
    { }
};

class Cmp
{
    public:
        bool operator() (const Score &s1, const Score &s2)
        {
            return s1.score_ < s2.score_;
        }
};

// Cmp p;
// p(s1, s2)

int main(int argc, const char *argv[])
{
    priority_queue<Score, vector<Score>, Cmp> q;

    q.push(Score(67, "zhangsan"));
    q.push(Score(88, "lisi"));
    q.push(Score(34, "wangwu"));}
时间: 2024-08-26 10:40:13

queue/priority_queue笔记的相关文章

stack queue priority_queue

可以直接使用的数据结构 stack queue priority_queue 头文件 <stack> <queue> <queue> 声明 stack<int>s1 queue<int>q; #include<functional> #include<vector> priority_queue<int,vector<Int>,less<Int>> pq; 从小到大 容量 s1.size

UVA11995I Can Guess the Data Structure!(stack + queue + priority_queue)

题目:UVA11995I Can Guess the Data Structure!(stack + queue + priority_queue) 题目大意:给你两种指令,1代表让1后面的数字进入这个数据结构,2代表无差错的从数据结构中取出这个数字,问这个数据结构是stack还是queue还是priority_queue,还是不确定,还是以上均不可能. 解题思路:用STL中的这些数据结构来模拟一下,模拟成功就是这种数据结构,注意pop的时候要判断是否empty. 代码: #include <c

uva 11995 I Can Guess the Data Structure stack,queue,priority_queue

题意:给你n个操做,判断是那种数据结构. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<stack> 5 #include<queue> 6 using namespace std; 7 int n; 8 int v[1010],u[1010]; 9 10 int ck_q() 11 { 12 //cout<<"!!"&

STL stack queue priority_queue

栈: empty() pop() push() size() top() 队列: back() empty() front() pop() push() size() 优先队列: empty() pop() push() size() top() priority_queue<int>  pq;   默认升序 priority_queue<int, vector<int>, greater<int> >  pq; 降序 priority_queue<i

Python实战之双向队列deque/queue学习笔记及简单练习

['__add__', '__bool__', '__class__', '__contains__', '__copy__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__ini

C++ Primer 学习笔记_55_STL剖析(十):容器适配器(stack、 queue 、priority_queue)源码浅析与使用示例

七种基本容器:vector.deque.list.set.multiset.map.multimap 一.容器适配器 stack queue priority_queue stack.queue.priority_queue 都不支持任一种迭代器,它们都是容器适配器类型,stack是用vector/deque/list对象创建了一个先进后出容器:queue是用deque或list对象创建了一个先进先出容器:priority_queue是用vector/deque创建了一个排序队列,内部用二叉堆实

STL容器用法速查表:list,vector,stack,queue,deque,priority_queue,set,map

STL容器用法速查表:list,vector,stack,queue,deque,priority_queue,set,map   list vector deque stack queue priority_queue set [unordered_set] map [unordered_map] multimap [unordered_multimap]     contiguous storage double-ended queue LIFO FIFO 1st is greatest  

C++ Primer笔记 容器和算法(1)

C++ 容器和算法(1) "泛型算法": 1.      算法可以作用于不同的容器类型. 2.      容器容纳多种不同类型元素 顺序容器: vector list deque(全称double-ended queue) 适配器: stack queue priority_queue 定义: vector<string> svere; C c(b,e)当[b,e) 左开右闭之间的元素. C c(n,d)初始化n个d 复制构造  vector<int> ivec

《C++ Primer Plus》16.4 泛型编程 学习笔记

STL是一种泛型编程(generic programming).面向对象编程关注的是编成的数据方面,而泛型编程关注的是算法.它们之间的共同点是抽象和创建可重用代码,单他们的理念决然不同.泛型编程旨在编写独立于数据类型的代码. 16.4.1 为何使用迭代器理解迭代器是理解STL的关键所在.模板使得算法独立于存储的数据类型,而迭代其使算法独立于使用的容器类型.因此,它们都是STL通用方法的重要组成部分.为了解为何需要迭代器,我们来看如何为两种不同数据表现实现find函数,然后来看如何推广这种方法.首