【发布时间】:2013-11-16 02:33:18
【问题描述】:
我正在尝试为新项目选择合适的数据类型以满足以下要求:
- 非常好!时间紧迫(用于输入数据)
- 不对容器中的数据进行随机插入或任何操作(只读并按顺序插入)
- 大小将在编译时固定(因此不需要动态分配)
- 数据将在某个定义的时间段(通过线程或服务)后按顺序删除,并且必须再次为新的数据提供空白空间。
例如。假设将 1,2,3,4,5,6 插入容器中。一段时间后,将删除 6 并插入 7,因此列表将是 7、1、2、3、4、5,然后 5 将被删除等...但大小必须相同。
我想知道从性能和内存的角度来看,哪种数据结构最适合我的情况。
谢谢...
编辑:顺便说一下,它与基本的 FIFO 逻辑有点不同,因为假设我们创建了 10 个元素(大小)的数据容器,但即使它还没有到达容器的末尾,也只插入了 3 个元素(大小的限制),如果经过指定的时间,它将被删除。
顺便说一句,我正在考虑使用 boost:array,但对 std:vector 和 std:deque 有点困惑。在这种情况下有什么特别的优势吗?
【问题讨论】:
-
为了快速插入和删除,使用
std::deque并限制大小,或者只使用数组。 -
你有什么想法,你尝试过什么?
-
到目前为止我还没有尝试过,我只是想先确定数据结构,因为它是项目的核心,功能并不难。我正在考虑使用 boost:array 但想知道有人有更好的解决方案或类似的经验。
标签: c++ arrays performance list vector