queue

queue 队,一种先进先出的数据结构,c++ stl里也叫容器适配器,它是以deque 或list为基础的一种数据结构

queue的相关操作

queue<int deque<int>>   q;
queue<int list<int>>    q;
q.empty();
q.size();
q.push(item);           //入队
q.pop();                //出队
q.back();               //返回对尾元素
q.front();             //返回队首元素

学习代码


#include <iostream>
#include <queue>
#include <deque>
#include <list>

using namespace std;
int main()
{
    queue<int, deque<int>> a;
    queue<int, list<int>>   b;
    queue<int>             c;//默认以deque为基础

    c.push(10);
    c.push(5);
    c.push(-1);
    c.push(20);
    cout << "队列里数据有" << c.size() << "个" << endl;
    cout << "队首:" << c.front() << endl;
    cout << "队尾:" << c.back() << endl;
    c.pop();
    cout << "新队首:" << c.front() << endl;

    while (c.size() != 0)
    {
        cout << "删除" << c.front() << endl;
        c.pop();
    }
    if (c.empty())
    {
        cout << "现在队列为空" << endl;
    }

    getchar();
    return 0;
}

deque

双端队列,与vector很相似,在中间位置插入或删除元素的代价较大。vector和deque相比只能在尾部添加或删除元素,而deque可在首部删除或添加元素

定义和初始化

deque<T> d;
deque<T> d(d1);
deque<T> d=d1;
deque<T> d={a1,a2,a3,...}

deque的相关操作

push_back(val);
push_front(val);
pop_back();
pop_front();
distance(iterator it1,iteraotr it2)   //在algorithm头文件中,计算2个迭代器所指元素之间的距离

学习代码


#include<iostream>
#include<deque>
#include<algorithm>
using namespace std;
int main()
{
    deque<int> a;
    a.push_back(3);
    a.push_back(4);
    a.push_back(5);

    a.push_front(2);
    a.push_front(1);
    a.push_front(0);

    a.pop_back();
    a.pop_front();

    /*for (deque<int>::size_type nCount = 0; nCount < a.size(); ++nCount)
    {
        cout << a[nCount] << endl;
    }*///使用下标访问

    for (deque<int>::iterator it = a.begin(); it != a.end(); ++it)
    {
        size_t nOffset = distance(a.begin(), it);
        cout << *it << endl;
        cout << *it << "与对首元素之间的距离:" << nOffset << endl;
    }
    getchar();
    return 0;
}

最新文章

  1. 使用WebRTC搭建前端视频聊天室——点对点通信篇
  2. 基于PHP以及Mysql,使用WordPress搭建站点
  3. sql 2008 R2添加对MySql的远程服务器链接
  4. sqlserver 链接 ODBC 访问 MySql
  5. collections在java中的常见用法
  6. com学习(四)——用 ATL 写第一个组件
  7. [Bootstrap] 8. &#39;Collapse&#39;, data-target, data-toggle &amp; data-parent
  8. LA_4670_Dominating_Patterns_(AC自动机+map)
  9. php long time(1)
  10. php 10.2总
  11. spring mvc中,直接注入的HttpServletRequst是否安全呢?
  12. 【转】JDBC学习笔记(10)——调用函数&amp;存储过程
  13. C# 格式化字符串
  14. mybatis的动态增删改查
  15. orcl数据库命令行怎么导入dmp格式的文件
  16. Android view显示在软键盘上方
  17. WPF开发汽车采样机上位机软件
  18. CentOS7 安装PHP7的redis扩展:
  19. Solving SharePoint Server 2010 - 503. The service is unavailable, After installation
  20. (一)利用 mdb 调试获取 nvlist_t 中 nvpair_t(name/value) 对

热门文章

  1. AngularJS学习篇(八)
  2. AngularJS学习篇(三)
  3. mysql5.7.16安装 初始密码获取及密码重置
  4. Problem A: 求平均年龄
  5. OpenCV畸变校正源代码分析
  6. thinkphp碰到的一些小问题
  7. 28.Linux-IIC驱动(详解)
  8. 学习cordic算法所得(流水线结构、Verilog标准)
  9. SpringAware
  10. C#表达式目录树(Expression)