C++ STL标准库 《queue单向队列原理与实战分析》

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
大数据开发治理平台 DataWorks,不限时长
简介: C++ STL标准库 《queue单向队列原理与实战分析》

一、queue单向队列原理

  queue 模板类的定义在<queue>头文件中。与stack 模板类很相似,queue 模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。

 

定义queue 对象的示例代码:

queue<int> q1;
queue<double> q2;

queue 的基本操作有:

q.push(x)               //  入队,将x 接到队列的末端。
q.pop()                  //  出队,弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
q.front()                //  访问队首元素,即最早被压入队列的元素。
q.back()                //  访问队尾元素,即最后被压入队列的元素。
q.empty()              //  判断队列空,当队列空时,返回true。
q.size()               //  访问队列中的元素个数

一、queue单向队列实战分析

#include <cstdlib>
#include <iostream>
#include <queue>

using namespace std;

int main()
{
    int e, n, m;
    queue<int> q1;
    for (int i = 0; i < 10; i++)
        q1.push(i);
    if (!q1.empty())
        cout << "Is OK-01.\n";
    n = q1.size();
    cout << n << endl;
    m = q1.back();
    cout << m << endl;
    for (int j = 0; j < n; j++)
    {
        e = q1.front();
        cout << e << " ";
        q1.pop();
    }
    cout << endl;
    if (q1.empty())
        cout << "Is OK-02.\n";
    system("PAUSE");

    return 0;
}

运行结果如下:

image.png

相关文章
|
5天前
|
算法 前端开发 Linux
【常用技巧】C++ STL容器操作:6种常用场景算法
STL在Linux C++中使用的非常普遍,掌握并合适的使用各种容器至关重要!
32 10
|
2天前
|
存储 编译器 C++
|
7天前
|
存储 算法 程序员
【C++进阶】深入STL之 栈与队列:数据结构探索之旅
【C++进阶】深入STL之 栈与队列:数据结构探索之旅
16 4
|
7天前
|
C++
【C/C++基础实战】:用C++实现通讯录管理系统——含完整源码
【C/C++基础实战】:用C++实现通讯录管理系统——含完整源码
|
2天前
|
缓存 网络协议 Linux
c++实战篇(三) ——对socket通讯服务端与客户端的封装
c++实战篇(三) ——对socket通讯服务端与客户端的封装
|
2天前
|
监控 C++
c++实战篇(二)——基于自旋锁实现的日志服务模块
c++实战篇(二)——基于自旋锁实现的日志服务模块
|
2天前
|
调度 C++
C++实战篇(一)——自旋锁的使用
C++实战篇(一)——自旋锁的使用
|
7天前
|
存储 缓存 编译器
【C++进阶】深入STL之list:模拟实现深入理解List与迭代器
【C++进阶】深入STL之list:模拟实现深入理解List与迭代器
8 0
|
1天前
|
C++
C++一分钟之-类与对象初步
【6月更文挑战第20天】C++的类是对象的蓝图,封装数据和操作。对象是类的实例。关注访问权限、构造析构函数的使用,以及内存管理(深拷贝VS浅拷贝)。示例展示了如何创建和使用`Point`类对象。通过实践和理解原理,掌握面向对象编程基础。
29 2
C++一分钟之-类与对象初步
|
2天前
|
C++
C++类和类模板——入门
C++类和类模板——入门
7 1