C++抽象编程——STL(3)——queue 类
来源:互联网 发布:福建摩尔软件骗局 编辑:程序博客网 时间:2024/05/20 03:48
在上一篇的博文中,我们提到过一个叫栈(stack)的数据结构,它是一种符合最后一个进栈的元素一定会是第一个出栈的元素(LIFO),这种机制在计算机编程中是非常有用的,因为它反映了我们编程中函数调用的机制。然而在现实生活中却显得限制太多显得无用。
在人类社会中,我们的公平的集体概念赋予了先发制人的优先权,如“先到先得”所表达的那样。在编程中,这种策略的通常称为是“先到先得” ,缩写为FIFO。
使用FIFO规则存储项目的数据结构称为队列。 队列中的基本操作(类似于栈的push和pop操作)被称为入队(enqueue)和出队(dequeue)。 在队列的末尾添加一个新元素,称为它的尾部(tail)。出队操作将删除队列开头的元素,这个元素称为它的头(head)。这两者的差别用图表可以很容易的看出来,就像下面一样:
在stack中,进程必须从这个数据结构的尾部添加或者删除元素,就像这样:
在queue中,进程通过下面的方式来添加或者删除元素,就像这样:
Queue类的结构看起来非常像它对应的Stack结构。下面的图列出了常用的方法,唯一的区别在于术语,因为它反映了元素排序的不同。
我们看看是不是跟stack类很像呢?(上一篇的链接)可能你觉得这样形容不是很贴切,什么叫很像,明明就是嘛,方法都一样了。哈哈。那好,我们就从上一篇博文改编一下,就是下面的表格了:
关于它的扩展功能我们一样可以参考上一篇的博文stack的方法,我就不多说。因为这个数据结构只是跟stack完全相反的存放类型而已。我们又在stack上花了大工夫讲解,所以队列的基本重点就完了。是不是很快?但是运用起来却不是那么简单。下一篇我们就提一下它的应用。
- C++抽象编程——STL(3)——queue 类
- 【STL】顺序容器 — queue
- STL源码—stack,queue
- STL源码—stack,queue
- C++抽象编程——STL(1)——STL前言
- C++抽象编程——STL(3)——离散事件模拟与排队问题
- C++抽象编程——STL(2)——stack类
- C++抽象编程——STL(6)——map类的简单使用
- C++——queue
- STL——list、stack、queue
- STL—— queue 单向队列
- STL学习——Stack/Queue篇
- STL源码剖析——queue
- C++24、stl——queue 队列
- C++ STL学习——queue
- STL练习: queue ——队列
- STL学习笔记——1.queue
- Lightoj1212——Double Ended Queue(STL)
- Python3菜鸟笔记
- 如何判断应用被强杀以及解决出现的空指针问题
- ORACLE 11g 修改db_unique_name参数
- return
- 0ctf 2017 babyheap writeup
- C++抽象编程——STL(3)——queue 类
- Linux 下的粘滞位
- 深度学习-采用caffe提供的工具extract_features.bin进行特征提取
- 透过分片定量压缩,理解Java数据流的装饰者模式
- 插入排序
- 计算机网络面试&笔试常考知识点
- java实现ssl双向认证
- SEVERE: Could not contact localhost:8005. Tomcat may not be running error while shutting down tomcat
- k-近邻算法实现手写数字识别系统