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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Linux C 字符串函数 sprintf()、snprintf() 详解
    Linux C 字符串输入函数 gets()、fgets()、scanf() 详解
    Linux C 字符串函数 strlen()、strcat()、strncat()、strcmp()、strncmp()、strcpy()、strncpy() 详解
    Linux C 字符函数 getchar()、putchar() 与 EOF 详解
    Linux C popen()函数详解
    【重装系统】线上Linux服务器(2TB)分区参考方案
    Ubuntu 开机进入命令行模式
    oracle视图总结(创建、查询、改动、删除等)
    UVa 637
    Intent 的Flag属性(Activity在栈位置的主宰者)
  • 原文地址:https://www.cnblogs.com/sunjianzhao/p/13408925.html
Copyright © 2011-2022 走看看