zoukankan      html  css  js  c++  java
  • 9-queue

    在C++中只要#include<queue>即可使用队列类,其中在面试或笔试中常用的成员函数如下(按照最常用到不常用的顺序)

    1. push

    2. pop

    3. size

    4. empty

    5. front

    6. back

    接下来逐一举例说明:

    1. push

    队列中由于是先进先出,push即在队尾插入一个元素,如:

    1 queue<string> q;
    2 q.push("Hello World!");
    3 q.push("China");
    4 cout<<q.front()<<endl;

    可以输出:Hello World!

    2. pop

    将队列中最靠前位置的元素拿掉,是没有返回值的void函数。如:

    1 queue<string> q;
    2 q.push("Hello World!");
    3 q.push("China");
    4 q.pop();
    5 cout<<q.front()<<endl;

    可以输出:China

    原因是Hello World!已经被除掉了。

    3. size

    返回队列中元素的个数,返回值类型为unsigned int。如:

    queue<string> q;
    cout<<q.size()<<endl;
    q.push("Hello World!");
    q.push("China");
    cout<<q.size()<<endl;

    输出两行,分别为0和2,即队列中元素的个数。

    4. empty

    判断队列是否为空的,如果为空则返回true。如:

    1 queue<string> q;
    2 cout<<q.empty()<<endl;
    3 q.push("Hello World!");
    4 q.push("China");
    5 cout<<q.empty()<<endl;

    输出为两行,分别是1和0。因为一开始队列是空的,后来插入了两个元素。

    5. front

    返回值为队列中的第一个元素,也就是最早、最先进入队列的元素。注意这里只是返回最早进入的元素,并没有把它剔除出队列。如:

    复制代码
    1 queue<string> q;
    2 q.push("Hello World!");
    3 q.push("China");
    4 cout<<q.front()<<endl;
    5 q.pop();
    6 cout<<q.front()<<endl;
    复制代码

    输出值为两行,分别是Hello World!和China。只有在使用了pop以后,队列中的最早进入元素才会被剔除。

    6. back

    返回队列中最后一个元素,也就是最晚进去的元素。如:

    1 queue<string> q;
    2 q.push("Hello World!");
    3 q.push("China");
    4 cout<<q.back()<<endl;

    输出值为China,因为它是最后进去的。这里back仅仅是返回最后一个元素,也并没有将该元素从队列剔除掉。

    其他的方法不是很常用,就不再研究了。

    接下来我们使用链表,自己将queue类写出来,将其所有方法都实现。代码都是自己写的,最后随便写了点main函数小测一下,没有发现问题,如果有不足还望能指正。如下:

     队列实现
     
  • 相关阅读:
    初心
    [CSP-S2019]:赛后总结
    最帅的快读
    检讨书模板
    $Linux$系统$GEDIT$编译运行$C++$和各种乱搞
    [CSP-S模拟测试]:C(倍增+数学)
    [CSP-S模拟测试]:B(期望DP)
    [CSP-S模拟测试]:A(单调栈维护凸包+二分答案)
    [NOIP2018]:旅行(数据加强版)(基环树+搜索+乱搞)
    [JZOJ6347]:ZYB玩字符串(DP+记忆化搜索)
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/8444267.html
Copyright © 2011-2022 走看看