zoukankan      html  css  js  c++  java
  • 队列(queue)、优先队列(priority_queue)、双端队列(deque)

    队列:先进先出

    头文件:<queue>

    基本操作

    queue<Type>q;   //定义队列,Type可以系统定义的数据类型,也可以是自己定义的结构体类型
    
    q.push(item);       //把item放入队列的尾部
    
    q.front();   //返回队首元素,但不会删除
    
    q.pop();    //删除队首元素
    
    q.back();  //返回队尾元素
    
    q.size();    //返回元素个数
    
    q.empty();   //检查队列是否为空

    优先队列 :按照权值进行队列排序

    头文件:<queue>

    基本操作

    priority_queue<Type,vector<Type>,greater<Type> >q; //队首元素最小。 若是自定义结构体,需要重载运算符>
    priority_queue<Type,vector<Type>,less<Type> >q; //队首元素最大.。   若是自定义结构体,需要重载运算符<
    
    bool operator >(struct node p,struct node q) {//无论是重载>还是重载<,下面的比较>都是从小到大排序,<都是从大到小排序
    return p.x>q.x; // >号代表从小到大排序 (按照x排序)
    }
    
    q.top();   // 返回队头元素
    
    q.empty();    //判断队列是否为空
    
    q.size();   //返回队列内元素个数
    
    q.push();    //插入元素到队尾 (并排序)
    
    q.pop();   //删除队头元素

    双端队列:队列和栈的结合体

    头文件:<deque>

    基本操作:

    deque<Type>de;  //创建一个双端队列
    
    de.front();  //读取双端队列的队首元素
    
    de.back();  //读取双端队列的队尾元素
    
    de.push_front(x);  //双端队列队首增加一个元素x
    
    de.push_back(x);  //双端队列尾部增加一个元素x
    
    de.pop_front();  //删除双端队列的队首元素
    
    de.pop_back();  //删除双端队列的队尾元素
    
    de.clear();    //清空双端队列
    
    de.empty();  //判断双端队列是否为空
    
    de.size();   //返回双端队列中元素的个数
    
    *de.begin();  //返回队首元素
    
    *(de.end()-1); //返回队尾元素
    
    deque<Type>::iterator pos;
    for(pos=de.begin();pos!=de.end();pos++){//遍历双端队列
    cout<<*pos;
    }
    
    de.begin(); //返回指向双向队列的队首元素的指针
    
    de.end(); //返回指向双端队列元素队尾元素的下一个位置的指针

    写于2020/7/31  11:58

    增添双端队列于2020/8/6 10:20

    增添双端队列中de.front()与de.back()于2020/9/8  20:13


    作者:孙建钊
    出处:http://www.cnblogs.com/sunjianzhao/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    ccf-集合竞价-201412-3
    ccf-命令行选项-201403-3
    ccf-路径解析201604-3
    ccf-炉石传说-201609-3
    CCF-权限查询-201612-3
    10个顶级的CSS UI开源框架
    移动端前端UI库—Frozen UI、WeUI、SUI Mobile
    @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别
    对比其它软件方法评估敏捷和Scrum
    SQL SERVER 2008 中三种分页方法与总结
  • 原文地址:https://www.cnblogs.com/sunjianzhao/p/13408925.html
Copyright © 2011-2022 走看看