用于存储最新值的 C++ 固定大小容器

标签 c++ stack queue containers

我想知道C++中下列问题最适合的数据结构是什么

我想存储 100 个按新近度排序的花车。因此,当我添加(推送)一个新项目时,其他元素会向上移动一个位置。每次触发事件时,我都会收到一个值,然后将其添加到我的数据结构中。

当元素数量达到 100 时,我想删除(弹出)末尾(最旧)的项目。

我希望能够遍历所有元素并对它们执行一些数学运算。

我查看了所有标准 C++ 容器,但没有一个能满足我的所有需求。使用标准 C++ 代码实现此目的的最简单方法是什么?

最佳答案

你想要一个循环缓冲区。您可以使用 Boost's implementation或者通过分配数组并跟踪使用范围的开始和结束来创建自己的数组。这归结为做索引模 100。

关于用于存储最新值的 C++ 固定大小容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28026193/

相关文章:

c++ - 有没有办法在 C++ 中通过引用传递右值?

c++ - 通过复制返回局部变量 - 它是如何工作的

php - 使用 Yii2 队列扩展和 Postgres 10.4 时出现错误 'Has not wait the lock'

C++ 使用自定义比较函数初始化 priority_queue

c++ - 使用 c++17 的弱绑定(bind)

c++ - 同时使用多个线程C++

c++ - QXmlStreamReader读取空文本,文档肯定不为空

android - 清除整个返回堆栈

c++ - Boost d_ary_heap/priority_queue 编译错误: deleted function

codeigniter - 使用 codeigniter 构建工作队列