队列
此数据结构适用于FIFO技术,其中FIFO表示先进先出。首先插入的元素将首先被提取,依此类推。有一个称为“前”的元素,它是位于最前位置或位于第一个位置的元素,也有一个名为“后”的元素,它是位于最后位置的元素。在普通队列中,元素的插入在尾部,而删除则从前面开始。
语法:
template<class T, class Container = deque<T> > class queue;
特点:先进先出,后进后出(FIFO)
- 访问元素(Access)O(N)
- 搜索元素(Search)O(N)
- 插入元素(Insert)O(1)
- 删除元素(Delete)O(1)
具体操作:(尾部插入,头部删除)
1.创建队列:
queue <int> fquiz;
2.添加元素:
fquiz.push(10); fquiz.push(20); fquiz.push(30);
3.删除元素:
fquiz.pop();
4.获取头部元素:
fquiz.front();
5.获取尾部元素:
fquiz.back();
6.判断队列是否为空:
ss.empty()队列为空返回true,否则返回false
7.队列长度:
fquiz.size();
8.遍历队列:
while (!ss.empty()){ cout << '\t' << ss.front(); ss.pop(); }
练习:
【933】最近的请求次数
【239】滑动窗口最大值