【发布时间】:2015-03-17 13:13:12
【问题描述】:
我想知道C++中以下问题最适合的数据结构是什么
我想存储 100 个按新近度排序的花车。因此,当我添加(推送)一个新项目时,其他元素会向上移动一个位置。每次触发事件时,我都会收到一个值,然后将其添加到我的数据结构中。
当元素数量达到 100 时,我想删除(弹出)最后的项目(最旧的)。
我希望能够遍历所有元素并对它们执行一些数学运算。
我查看了所有标准 C++ 容器,但没有一个能满足我的所有需求。使用标准 C++ 代码实现这一目标的最简单方法是什么?
【问题讨论】:
-
我认为 std::queue 对这个问题有好处
-
我不能很容易地遍历整个 std::queue - 我想对所有项目进行加权平均。
-
@CalG 为什么你不能这样做?每次插入/弹出队列更新平均值时。
-
@Shan 浮点错误累积。
-
如果你只需要平均值,为什么不使用运行总和和运行平均值呢? O(1) 空间和 O(1) 时间复杂度:-)
标签: c++ stack queue containers