从零开始手写STL库:Queue

从零开始手写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();
    }
};

总结

队列常用于多线程同步,比如消息队列

单独问队列一般没什么可以问的,注意掌握好双向队列和循环队列知识点即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值