当前位置: 首页 > news >正文

电子商城网站开发购物车交换友链平台

电子商城网站开发购物车,交换友链平台,高校网站建设的文章,wordpress安装图片不显示不出来C 文章目录 C 很多时候,我们需要在内存中记录最近一段时间的数据,如操作记录等。由于这部分数据记录在内存中,因此并不能无限递增,一般有容量限制,超过后就将最开始的数据移除掉。在stl中并没有这样的数据结构&#xf…

C++


文章目录

  • C++


很多时候,我们需要在内存中记录最近一段时间的数据,如操作记录等。由于这部分数据记录在内存中,因此并不能无限递增,一般有容量限制,超过后就将最开始的数据移除掉。在stl中并没有这样的数据结构,一般需要我们自己构造,常用方法如下:

用list构造,超过后把数据头移除
用vector构造,超过后把数据头移除
用数组构造,通过循环的方式覆盖
这几种方式都有各自的缺点:用list构造无法实现随机访问,用vector构造移动数据头开销较大,用数组构造需要维护数据头指针和防止计数器溢出,计算位置和数据的移除也相对较麻烦。

当然,这些都不是无法解决的问题,就是稍微麻烦点。不过现在boost直接提供了一个circular_buffer类可以实现这一操作,它的接口基本上和vector类似,但它有容量限制,实现方式也稍微有点不同:
在这里插入图片描述
circular_buffer内部也是用一块连续内存保存数据,元素的下标从0->n - 1依次增大(begin处为0, end - 1处为n - 1)。如果达到容量上限,继续push_back方法压入元素时,原来begin处的元素就会被覆盖,原来begin + 1处的元素成为新的begin,push_front功能类似。

也就是说,circular_buffer的内部还是通过数组来实现,只不过给我们做好了封装工作,提供了vector类似的接口,用起来非常简便。如下是boost文档是的例子:

   // Create a circular buffer with a capacity for 3 integers.boost::circular_buffer<int> cb(3);// Insert some elements into the buffer.cb.push_back(1);cb.push_back(2);cb.push_back(3);int a = cb[0]; // a == 1int b = cb[1]; // b == 2int c = cb[2]; // c == 3// The buffer is full now, pushing subsequent// elements will overwrite the front-most elements.cb.push_back(4); // Overwrite 1 with 4.cb.push_back(5); // Overwrite 2 with 5.// The buffer now contains 3, 4 and 5.a = cb[0]; // a == 3b = cb[1]; // b == 4c = cb[2]; // c == 5// Elements can be popped from either the front or the back.cb.pop_back(); // 5 is removed.cb.pop_front(); // 3 is removed.int d = cb[0]; // d == 4

虽然circular_buffer这种功能并不难实现,但既然boost给我们提供了一个好用的准标准库,就不要重复造轮子了。

http://www.tj-hxxt.cn/news/67640.html

相关文章:

  • 网站在线客服系统搭建网络外包运营公司
  • 莱山网站建设外贸网站推广的方法
  • 做网站付款方式搜索关键词是什么意思
  • wordpress竖排西安seo霸屏
  • 有专做代金券的网站吗合肥做网站公司哪家好
  • 西安网站建设sd2w长沙网络营销学校
  • 做娱乐网站如何做seo优化
  • 杭州模板建站代理短视频如何引流与推广
  • 北京建站设计搜索引擎关键词优化
  • 服装设计网站免费bt搜索引擎
  • 在线做网站图标小红书kol推广
  • 成都门户网站建设多少钱seo搜索引擎优化报价
  • 做购物平台网站 民治网络营销的主要方式
  • 云速建站怎么样seo网站推广招聘
  • 山东网站建设xywlcn海外推广营销 平台
  • 怎么知道一个网站是谁做的营销策划书案例
  • 广州网页设计公司排名济南seo优化外包
  • 潍坊尚呈网站建设公司怎么样关键词优化公司费用多少
  • 北京直销网站开发公司seo查询 站长工具
  • 海南网站建设公司哪家好免费推广的方式
  • 清远建设网站制作短视频seo排名系统
  • 如皋电子商城网站建设自己怎么做网页推广
  • 武昌做网站多少钱磁力宝最佳搜索引擎入口
  • 如何能快速搜到新做网站链接谷歌seo排名优化服务
  • 网站如何在百度做排名一个新产品的营销方案
  • 怎么做自己的代刷网站电子商务营销策略
  • dw用层还是表格做网站快词爱站的关键词
  • 织梦可以做导航网站网站做成app
  • 做淘宝有哪些推广网站优化搜索关键词
  • 深圳横岗做网站的网站seo优化方案设计