[C++] stack和queue的常用函数
参考资料:
STL 在 OI 中的应用
stack
stack 后入先出(LIFO)栈
头文件:
#include<stack>
定义:
stack<int> s;
函数:
| 函数 | 功能 |
|---|---|
| q.top() | 获取栈顶元素(并不删除) |
| q.pop() | 删除栈顶元素 |
| q.push(x) | 向栈中加入元素 |
| q.empty() | 判断栈是否为空 |
queue
queue 先入先出(FIFO)队列
头文件:
#include<queue>
定义:
queue<int> q;
函数:
| 函数 | 功能 |
|---|---|
| q.front() | 获取队首元素(并不删除) |
| q.pop() | 删除队首元素 |
| q.push(x) | 向队列中加入元素 |
| q.empty() | 判断队列是否为空 |
priority_queue 优先队列
头文件:
#include<queue>
定义:
priority_queue<int> q; // 队头最大
priority_queue<int,vector<int>,greater<int> > q; 队头最小
函数:
| 函数 | 功能 |
|---|---|
| q.top() | 获取优先队列中最大的元素(并不删除),其时间复杂度为\(O(1)\) |
| q.pop() | 删除优先队列中最大元素,其时间复杂度为\(O(log n)\) |
| q.push(x) | 向优先队列中加入元素,其时间复杂度为\(O(log n)\) |
| q.empty() | 判断优先队列是否为空 |
[C++] stack和queue的常用函数的更多相关文章
- [STL]deque和stack、queue
怎么说呢,deque是一种双向开口的连续线性空间,至少逻辑上看上去是这样.然而事实上却没有那么简单,准确来说deque其实是一种分段连续空间,因此其实现以及各种操作比vector复杂的多. 一.deq ...
- Java容器:Stack,Queue,PriorityQueue和BlockingQueue
Stack Queue PriorityQueue BlockingQueue ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue ...
- 【算法专题】工欲善其事必先利其器—— 常用函数和STL
一. 常用函数 #include <stdio.h> int getchar( void ); //读取一个字符, 一般用来去掉无用字符 char *ge ...
- C++——STL之vector, list, deque容器对比与常用函数
STL 三种顺序容器的特性对比: vector 可变数组,内存空间是连续的,容量不会进行缩减.支持高效随机存取,即支持[]和at()操作.尾部插入删除效率高,其他位置插删效率较低: list 双向链表 ...
- stack和queue小讲
由于stack和queue没有太多新的东西,故在此只把API拿出来小说一下,自己也记得比较牢靠一些. stack常用API push(int elem); //向栈顶添加元素 pop(); //从栈顶 ...
- Java集合的Stack、Queue、Map的遍历
Java集合的Stack.Queue.Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一 ...
- 带你深入理解STL之Stack和Queue
上一篇博客,带你深入理解STL之Deque容器中详细介绍了deque容器的源码实现方式.结合前面介绍的两个容器vector和list,在使用的过程中,我们确实要知道在什么情况下需要选择恰当的容器来满足 ...
- pandas 常用函数整理
pandas常用函数整理,作为个人笔记. 仅标记函数大概用途做索引用,具体使用方式请参照pandas官方技术文档. 约定 from pandas import Series, DataFrame im ...
- JQuery常用函数及功能
JQuery常用函数及功能小结 来源:http://blog.csdn.net/screensky/article/details/7831000 1.文档加载完成执行函数 $(document).r ...
随机推荐
- C++虚析构函数解析
当派生类对象从内存中撤销时一般先运行派生类的析构函数,然后再调用基类的析构函数. 如果用new运算符建立的派生类的临时对象,对指向基类的指针指向这个临时对象当用delete运算符撤销对象时,系统执行的 ...
- 常用正则表达式:手机、电话、邮箱、身份证、IP地址、网址、日期等
转载源:http://blog.csdn.net/lun379292733/article/details/8169807 <script type="text/JavaScript& ...
- Apache poi 使用经验分享
我在使用apache poi导入导出Excel做项目过程中,遇到了许许多多的问题,在此简单罗列. 1.xls和xlsx的区分:poi将2003以前和2007以后的excel封装成了两个不同的实现:HS ...
- python解释器介绍以及Pycharm的破解
python语言是弱类型解释型语言,弱类型指的是没有强制规定它的类型. 由于是解释型语言,则必有解释器与其匹配,根据不同的工作环境以及需求,python的解释器有很多种, 官方推荐的是CPython, ...
- Object.assign简单总结
定义 Object.assign方法用来将源对象source的所有可枚举属性复制到目标对象target.至少需要两个对象作为参数,第一个参数为源对象,后面的均为目标对象.(以下用source代指源对象 ...
- 【代码笔记】iOS-mp3的播放
一,工程图. 二,代码. RootViewController.h #import <UIKit/UIKit.h> //加入AVFoundation.framework头文件 #impor ...
- nodejs图像处理模块
首先是搜索了npm包的性能比较,找到了这篇: https://github.com/ivanoff/images-manipulation-performance 性能最好的当属sharp,由于安装不 ...
- [Android] 实现简单的相机程序
好久没写了,有些东西做过都快忘了,赶紧记一下. 现在来实现一个简单的相机程序. 原文地址http://www.cnblogs.com/rossoneri/p/4246134.html 当然需要的话可以 ...
- LeetCode题解之Merge k Sorted Lists 解法二
1.题目描述 2.分析 利用 vector 存储指针,同时合并k个链表. 3.代码 ListNode* mergeKLists(vector<ListNode*>& lists) ...
- LeetCode题解之Swap Nodes in Pairs
1.题目描述 2.问题分析 对两个节点进行交换操作 3.代码 ListNode* swapPairs(ListNode* head) { if( !head || head->next == N ...