C++11风格的FIFO

本文介绍了一种使用C++11特性实现的泛型FIFO队列,该队列支持任意长度数据的读写操作。为了增强类型通用性,队列采用模板类型设计。虽然原始代码仅有英文注释,但其简洁明了,易于理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一种C++11风格的FIFO,支持任意长度的数据读写。

做单元测试的时候发现支持的类型不够通用,所以改为模板类型。

当时用的编辑器不支持中文,没办法,就用英文写了点简单的注释,代码也很好懂,不多说,直接上代码。

template <typename T> //para T is fifo store type

class  XyFifo
{
public:
    // initial fifo size
    XyFifo(unsigned int size)                   
    {
        _fifoInputIndex = 0;
        _fifoOutputIndex = 0;
        _currentFifoHead = 0;
        _bufferSize = size+1;
        _fifoBuffer = new T[_bufferSize];
    };

    ~XyFifo()
    {
        delete[]_fifoBuffer;
        _fifoBuffer = nullptr;
    };

    //check whether the fifo is write full
    bool isWriteFull()
    {
        auto inputIndex = _fifoInputIndex;

        auto temp = (++inputIndex >= _bufferSize) ? 0 : inputIndex;

        if (temp == _fifoOutputIndex)
        {
            return true;
        }

        return false;
    };
    //check whether the fif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值