RingBuff.h实现:

#include <iostream>using namespace std;template <class T>
class RingBuff
{private:unsigned int m_size;int m_in;int m_out;T* m_data;public:RingBuff (unsigned int size): m_size(size), m_in(0), m_out(0){m_data = new T[m_size];}~RingBuff() {delete[] m_data;}bool isEmpty() {return m_in == m_out;}bool isFull() {return m_out == (m_in + 1) % m_size;}void push(T ele) {if (isFull()) {return;}m_data[m_in] = ele;m_in = (m_in + 1) % m_size;}T pop() {if (isEmpty()) {return NULL;}T tmp = m_data[m_out];m_out = (m_out + 1) % m_size;return tmp;}
};

main函数实现:

#include "RingBuff.h"using namespace std;int main()
{cout << "Hello CMake。" << endl;RingBuff<char> ringBuff(11);char a = '0';for (int i = 0; i < 1024; i++) {//arr[i] = a++;ringBuff.push(a++);}while (!ringBuff.isEmpty()) {printf("%c ", ringBuff.pop());}RingBuff<int> ringBuffInt(1024);for (int i = 0; i < 1024; i++) {//arr[i] = a++;ringBuffInt.push(i);}while (!ringBuffInt.isEmpty()) {printf("%d ", ringBuffInt.pop());}int b = ringBuffInt.pop();printf("%d\n", b);getchar();return 0;
}

ring buffer 环形队列 C++实现相关推荐

  1. ringbuffer java例子_使用Ring Buffer构建高性能的文件写入程序

    最近常收到SOD框架的朋友报告的SOD的SQL日志功能报错:文件句柄丢失.经过分析得知,这些朋友使用SOD框架开发了访问量比较大的系统,由于忘记关闭SQL日志功能所以出现了很高频率的日志写入操作,从而 ...

  2. 解析Disruptor:写入ring buffer

    原文地址http://mechanitis.blogspot.com/2011/07/dissecting-disruptor-writing-to-ring.html 这是Disruptor end ...

  3. SQL Server 环形缓冲区(Ring Buffer) -- 介绍

    SQL Server 环形缓冲区(Ring Buffer) -- 介绍 以下关于Ring Buffer的介绍转载自: http://zh.wikipedia.org/wiki/%E7%92%B0%E5 ...

  4. Java 环形缓冲器(Ring Buffer)

    环形缓冲器(Ring Buffer):环形队列,这里使用数组实现,但并未用上环形功能,因为设置了队满直接出队清空队列,如果只读取部分数据,又或者想要覆盖冲写,则可以用上环形功能 package cha ...

  5. dpdk的无锁环形队列Ring

    1. DPDK Ring简介 dpdk实现了一个无锁环形队列Ring,可用于在dpdk不同的应用程序之间进行通信. Ring支持的效果: 先进先出 最大大小是固定的,指针存储在表中 无锁实现 多消费者 ...

  6. 环形缓冲区(Ring Buffer)使用说明

    本说明涉及如下内容 什么是环形缓冲区 如何使用环形缓冲区 函数调用说明 环形缓冲区源码下载地址https://download.csdn.net/download/xm_smallp/86248489 ...

  7. 优秀的内存规划方法——环形缓冲区(ring buffer)

    目录 什么是环形缓冲区 使用环形buffer的好处 环形buffer的使用场景 进程间通信 网络IO 区分缓冲区是满或者是空 计数 保持一个存储单元为空 镜像指示位 buffer满了之后的操作 实时流 ...

  8. 环形缓冲区的实现原理(ring buffer)

    消息队列锁调用太频繁的问题算是解决了,另一个让人有些苦恼的大概是这太多的内存分配和释放操作了.频繁的内存分配不但增加了系统开销,更使得内存碎片不断增多,非常不利于我们的服务器长期稳定运行.也许我们可以 ...

  9. SQL Server 环形缓冲区(Ring Buffer) -- 环形缓冲在AlwaysOn的应用

    SQL Server 环形缓冲区(Ring Buffer) -- 环形缓冲在AlwaysOn的应用 可以从SQL Server环形缓冲区得到一些诊断AlwaysOn的信息,或从sys.dm_os_ri ...

最新文章

  1. 贵港java_贵港人才网:经典java笔试题及答案分享
  2. NAACL19笔记:自然语言处理应用的实用理解(多图解链接)
  3. 移动端下弹框禁止背景滑动
  4. 使用PORT对HOSTNAME执行DICOM Q / R操作的测试程序
  5. Session,Cookie,jsessionid,Url重写
  6. Java中创建String的两道面试题及详解
  7. 怎么用html做随机颜色,JavaScript 实现网站标签随机颜色的方法
  8. wordpress 后台慢_WordPress网站优化加速的5个技巧
  9. Linux小知识收集(不断更新)
  10. 关于在window下使用docker的备选方案
  11. 《潮流时装设计——世界顶级时装CAD制板技巧》——1.2 国内外服装CAD的发展状况...
  12. 读《线上幽灵:世界头号黑客米特尼克自传》 有感
  13. 多省市区“十四五”规划布局交通新基建
  14. 关于笔记本突然鼠标无法连接,电脑蓝牙消失的问题
  15. XMU毕业生总结写paper常用网站
  16. osm 搭建离线地图_开源地图OSM
  17. python爬虫餐饮行业数据分析统计服_Python数据分析实战,简单快速制作餐饮行业商业化报告...
  18. Oracle查询语句及实例
  19. 沈师 PTA 数据库题目及部分解析 第十章
  20. Win10连接Bose QC30蓝牙耳机 已配对但连接不成功

热门文章

  1. 电脑中毒C盘满了不知道怎么回事!PC版一键清理电脑C盘工具
  2. java8合并两个List
  3. 设计模式:状态(State)模式
  4. 小埋的Dancing Line之旅:比赛题解热身题题解
  5. 设计原则—SOLID(SRP)
  6. Linux项目开发—电子相册
  7. okcoin 爱沙尼亚_我如何成为爱沙尼亚的电子居民
  8. 电子漫画系列更新9张美图,共计47张,收藏收藏!
  9. 二手电商的盛与衰:闲鱼持续扩张,爱回收稳扎稳打,转转战略失焦
  10. 初中地理历史计算机教师资格证,初中地理教师资格证好考吗