gpt4 book ai didi

用于固定大小和预定义类型数据的 C++ vector 、列表或数组

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:37 24 4
gpt4 key购买 nike

我正在尝试为新项目选择合适的数据类型以满足以下要求:

  • 非常好!时间紧迫(用于输入数据)
  • 不能对容器中的数据进行随机插入或任何操作(只读和顺序插入)
  • 大小将在编译时固定(因此不需要动态分配)
  • 数据将在某个定义的时间段后(通过线程或服务)按顺序删除,并且空白空间必须再次可用于新的数据。

例如。假设 1,2,3,4,5,6 插入到容器中。一段时间后,6 将被删除,7 将被插入,因此列表将是 7,1,2,3,4,5,然后 5 将被删除等等...但大小必须相同。

我想知道从性能和内存的角度来看,哪种数据结构最有效、最适合我的情况。

谢谢...

编辑:顺便说一下,它与基本的 FIFO 逻辑有点不同,因为假设我们创建了 10 个元素(大小)数据容器,但仅插入了 3 个元素,即使它还没有到达容器的末尾(大小限制) ),如果超过指定的时间,它将被删除。

顺便说一下,我正在考虑使用 boost:array,但对 std:vector 和 std:deque 有点困惑。这种情况有什么特别的优势吗?

最佳答案

你需要的是一个建立在固定大小数组上的循环缓冲区,这是非常简单且最快的数据结构。

您可以编写自己的循环缓冲区类或尝试使用循环缓冲区的boost 实现http://www.boost.org/doc/libs/1_54_0/libs/circular_buffer/doc/circular_buffer.html

关于用于固定大小和预定义类型数据的 C++ vector 、列表或数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19785253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com