boost 循环缓冲区

  1. #include <boost/circular_buffer.hpp>
  2. int _tmain(int argc, _TCHAR* argv[])
  3. {
  4. boost::circular_buffer<int> cb(3);
  5. // Insert some elements into the buffer.
  6. cb.push_back(1);
  7. cb.push_back(2);
  8. cb.push_back(3);
  9. int a = cb[0];  // a == 1
  10. int b = cb[1];  // b == 2
  11. int c = cb[2];  // c == 3
  12. // The buffer is full now, pushing subsequent
  13. // elements will overwrite the front-most elements.
  14. cb.push_back(4);  // Overwrite 1 with 4.
  15. cb.push_back(5);  // Overwrite 2 with 5.
  16. // The buffer now contains 3, 4 and 5.
  17. a = cb[0];  // a == 3
  18. b = cb[1];  // b == 4
  19. c = cb[2];  // c == 5
  20. // Elements can be popped from either the front or the back.
  21. cb.pop_back();  // 5 is removed.
  22. cb.pop_front(); // 3 is removed.
  23. int d = cb[0];  // d == 4
  24. return 0;
  25. }

boost 循环缓冲区的更多相关文章

  1. linux c++循环缓冲区模板类

    一:概述 实际学习和工作中,我们经常会遇到读写大量数据的情况,这个时候我们可能就用到了循环缓冲区. 循环缓冲区在处理大量数据的时候有很大的优点,循环缓冲区在一些竞争问题上提供了一种免锁的机制,免锁的前 ...

  2. 高效的两段式循环缓冲区──BipBuffer

    Simon Cooke,美国 (原作者) 北京理工大学 20981 陈罡(翻译) 写在前面的话: 循环缓冲区是一个非常常用的数据存储结构,已经被广泛地用于连续.流数据的存储和通信应用中.对于循环缓冲区 ...

  3. memcpy() 实现循环缓冲区数据的读写

    使用memcpy()函数做循环缓冲区的读写 首先对mencpy函数做个简单的介绍 下面是 memcpy() 函数的声明 void *memcpy(void *str1, const void *str ...

  4. 【笔记】Linux内核中的循环缓冲区

    1. 有关ring buffer的理解 1)  ring buffer位首尾相接的buffer,即类似生活中的圆形跑道: 2)  空闲空间+数据空间=ring buffer大小 3)  ring bu ...

  5. Boost简介

    原文链接:  吴豆豆http://www.cnblogs.com/gdutbean/archive/2012/03/30/2425201.html Boost库 Boost库是为C++语言标准库提供扩 ...

  6. boost::asio译文

        Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENS ...

  7. boost库的安装,使用,介绍,库分类

    1)首先去官网下载boost源码安装包:http://www.boost.org/ 选择下载对应的boost源码包.本次下载使用的是 boost_1_60_0.tar.gz (2)解压文件:tar - ...

  8. Boost.Asio技术文档

    Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENSE_1_ ...

  9. C++ Boost库分类总结

    c# 程序员写c++,各种不适应.尤其是被内存操作和几十种字符串类型的转换,简直疯了,大小写转换竟然要手动写代码实现. Boost看介绍不错,也不知道能不能跨平台.过几天要上linux写c++, 也不 ...

随机推荐

  1. 【转】页面尺寸不一样的PDF页面调整方法

    本文综合参考:http://www.360doc.com/content/10/1114/22/2961363_69395272.shtml http://blog.sina.com.cn/s/blo ...

  2. 链接分析算法之:HITS算法

    链接分析算法之:HITS算法     HITS(HITS(Hyperlink - Induced Topic Search) ) 算法是由康奈尔大学( Cornell University ) 的Jo ...

  3. Swift - 1 (常量、变量、字符串、数组、字典、元组、循环、枚举、函数)

    Swift 中导入类库使用import,不再使用<>,导入自定义不再使用"" import Foundation 1> 声明变量和常量 在Swift中使用 &qu ...

  4. android -- 蓝牙 bluetooth (四)OPP文件传输

    在前面android -- 蓝牙 bluetooth (一) 入门文章结尾中提到了会按四个方面来写这系列的文章,前面已写了蓝牙打开和蓝牙搜索,这次一起来看下蓝牙文件分享的流程,也就是蓝牙应用opp目录 ...

  5. server配置学习 ---- 关闭防火墙

    iptables 一种网络防火墙,在LINUX下使用,RedHat9.0版本号以上自带. 它能够实现NAT转换.能够做上网代理. 首先对于server的配置第一步来说就是关闭防火墙.在没有图形化中的l ...

  6. vb.net 字符串的操作 应用

    Module Module1 Sub Main() ' 定义3个字符串变量 Dim str1, str2, str3 As String '给str1,str2付初值 str1 = "Hel ...

  7. C++ cout 如何保留小数输出

    参考 : http://upliu.net/how-cout-out-2-precision.html 大家都知道用 C 语言中 printf () 函数可以非常方便控制保留 几位小数输出 不过在 C ...

  8. Python函数式编程:内置函数map()使用说明

    一.概述 map操作是函数式编程中的重要技术之一,其作用就是对一个集合中的每个元素做处理,生成一个新的元素,由这些新的元素组成一个新的集合的返回. 所以map操作后,产生的新集合的元素个数和原集合的元 ...

  9. struct 和 class 不同点

    在 C++ 里面 struct 和 class 没有本质的差别 仅仅是成员和继承方式的默认不同 struct 是 public class 是 private 我的个人建议是仅仅要须要实现成员函数的就 ...

  10. HDU1878 欧拉回路 - from lanshui_Yang

    Problem Description 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路.现给定一个图,问是否存在欧拉回路?   Input 测试输入包含若干测试用例.每个 ...