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

3 c++ queue stack containers

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

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

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

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

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

Que*_*tin 5

你想要一个循环缓冲区。您可以使用Boost 的实现,也可以通过分配一个数组并跟踪所使用范围的开始和结束来创建自己的实现。这归结为以 100 为模进行索引。

  • @Abhinav 我不明白。如果您多次存储相同的值,一般的解决方案不是聪明地存储该值 20 次。如果您需要删除重复项,*那么*您将需要更具体的解决方案。OP 中没有任何地方出现重复值。 (3认同)