ring buffer 环形队列 C++实现
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++实现相关推荐
- ringbuffer java例子_使用Ring Buffer构建高性能的文件写入程序
最近常收到SOD框架的朋友报告的SOD的SQL日志功能报错:文件句柄丢失.经过分析得知,这些朋友使用SOD框架开发了访问量比较大的系统,由于忘记关闭SQL日志功能所以出现了很高频率的日志写入操作,从而 ...
- 解析Disruptor:写入ring buffer
原文地址http://mechanitis.blogspot.com/2011/07/dissecting-disruptor-writing-to-ring.html 这是Disruptor end ...
- SQL Server 环形缓冲区(Ring Buffer) -- 介绍
SQL Server 环形缓冲区(Ring Buffer) -- 介绍 以下关于Ring Buffer的介绍转载自: http://zh.wikipedia.org/wiki/%E7%92%B0%E5 ...
- Java 环形缓冲器(Ring Buffer)
环形缓冲器(Ring Buffer):环形队列,这里使用数组实现,但并未用上环形功能,因为设置了队满直接出队清空队列,如果只读取部分数据,又或者想要覆盖冲写,则可以用上环形功能 package cha ...
- dpdk的无锁环形队列Ring
1. DPDK Ring简介 dpdk实现了一个无锁环形队列Ring,可用于在dpdk不同的应用程序之间进行通信. Ring支持的效果: 先进先出 最大大小是固定的,指针存储在表中 无锁实现 多消费者 ...
- 环形缓冲区(Ring Buffer)使用说明
本说明涉及如下内容 什么是环形缓冲区 如何使用环形缓冲区 函数调用说明 环形缓冲区源码下载地址https://download.csdn.net/download/xm_smallp/86248489 ...
- 优秀的内存规划方法——环形缓冲区(ring buffer)
目录 什么是环形缓冲区 使用环形buffer的好处 环形buffer的使用场景 进程间通信 网络IO 区分缓冲区是满或者是空 计数 保持一个存储单元为空 镜像指示位 buffer满了之后的操作 实时流 ...
- 环形缓冲区的实现原理(ring buffer)
消息队列锁调用太频繁的问题算是解决了,另一个让人有些苦恼的大概是这太多的内存分配和释放操作了.频繁的内存分配不但增加了系统开销,更使得内存碎片不断增多,非常不利于我们的服务器长期稳定运行.也许我们可以 ...
- SQL Server 环形缓冲区(Ring Buffer) -- 环形缓冲在AlwaysOn的应用
SQL Server 环形缓冲区(Ring Buffer) -- 环形缓冲在AlwaysOn的应用 可以从SQL Server环形缓冲区得到一些诊断AlwaysOn的信息,或从sys.dm_os_ri ...
最新文章
- 贵港java_贵港人才网:经典java笔试题及答案分享
- NAACL19笔记:自然语言处理应用的实用理解(多图解链接)
- 移动端下弹框禁止背景滑动
- 使用PORT对HOSTNAME执行DICOM Q / R操作的测试程序
- Session,Cookie,jsessionid,Url重写
- Java中创建String的两道面试题及详解
- 怎么用html做随机颜色,JavaScript 实现网站标签随机颜色的方法
- wordpress 后台慢_WordPress网站优化加速的5个技巧
- Linux小知识收集(不断更新)
- 关于在window下使用docker的备选方案
- 《潮流时装设计——世界顶级时装CAD制板技巧》——1.2 国内外服装CAD的发展状况...
- 读《线上幽灵:世界头号黑客米特尼克自传》 有感
- 多省市区“十四五”规划布局交通新基建
- 关于笔记本突然鼠标无法连接,电脑蓝牙消失的问题
- XMU毕业生总结写paper常用网站
- osm 搭建离线地图_开源地图OSM
- python爬虫餐饮行业数据分析统计服_Python数据分析实战,简单快速制作餐饮行业商业化报告...
- Oracle查询语句及实例
- 沈师 PTA 数据库题目及部分解析 第十章
- Win10连接Bose QC30蓝牙耳机 已配对但连接不成功