从零开始手写STL库–Queue的实现
Gihub链接:miniSTL
一、queue是什么?
std::queue是STL中的一个容器适配器,它提供了队列(FIFO,即先进先出)的功能
与stack的实现基本一样,对之前实现好的deque进行封装,并且改变pop和front函数即可
(front与栈中的top为一个功能,访问这个容器中你唯一可以访问的元素)
二、queue要包含什么函数
必要的三个函数:push, pop 和 front,注意先进先出顺序即可
template <typename T, typename Container = myDeque<T> >
class myQueue
{
private:
Container data;
public:
void push(const T & value)
{
data.push_back(value);
}
void pop()
{
if(data.empty()) throw std::runtime_error("Stack is empty!");
else data.pop_front();
}
T& front()
{
if(data.empty()) throw std::runtime_error("Stack is empty!");
else return data[0];
}
size_t size()
{
return data.getSize();
}
bool empty()
{
return data.empty();
}
};
总结
队列常用于多线程同步,比如消息队列
单独问队列一般没什么可以问的,注意掌握好双向队列和循环队列知识点即可