目录
前言:队列是FIFO,(先进先出)
0 准备
#include<queue>
一 initialize & assignment
queue<string> q;
二 operator
操作无非就是增删查改,,,,
2.1 add
//在队尾插入一个元素
q.push("china");
2.2 delete
//把队首的元素删除,也就是最早进去的元素。void函数
q.pop()
2.3 query
//返回队列中元素的个数,返回值类型为unsigned int
q.size()
//是否为空,空则为true不空为false。
q.empty()
//返回队首元素,即最早进去的。
q.front()
//返回队尾元素,即最晚进去的。
q.back()
2.4 change
三 常见写法
3.1 遍历
//queue 没有迭代器。访问元素的唯一方式是遍历容器内容,并移除访问过的每一个元素。
deque<double> values {1.5, 2.5, 3.5, 4.5};
queue<double> numbers(values);
while (!numbers.empty())
{
cout << numbers. front() << " "; // Output the 1st element
numbers. pop(); // Delete the 1st element
}
四 集成函数
4.1 deque
4.2 priority_queue 优先队列
//队头最大 (默认)
priority_queue(int) p_q;
//队头最大 (默认)
priority_queue(int) p_q;
priority_queue<int,vector<int>,greater<int> > q; 队头最小
q.top() 获取优先队列中最大的元素(并不删除),其时间复杂度为O(1)
q.pop() 删除优先队列中最大元素,其时间复杂度为O(logn)
q.push(x) 向优先队列中加入元素,其时间复杂度为O(logn)
q.empty() 判断优先队列是否为空