我已经开始进行自己的“数组结构”编码,但想知道是否有人知道已经存在的库或模板,用于在内存受限的硬件上进行密集的数据转换。
我想我正在寻找的是一种“内存中”容器,它允许我将插入排队直到一个同步点,并在迭代中“删除”。它不必是实际的删除(带有移动东西的开销),标记为已删除也可以。此外,为了缓存预热等性能,容器可能在很大程度上必须是连续的。连续块而不是完全连续块也可以,但是基于链表的容器不会因为内存或速度而减少它,因为数组通常由非常小的元素组成。
这就是为什么我假设某种表类适合,因为容器就像一个按主键排序的表。
虽然意义很好,但使用 std::vector 的想法实际上是不可能的,因为在迭代期间删除某些内容会因为访问数组的末尾和开头(计数)而弄乱缓存。
此外,没有理由不能对相同的数据进行多个迭代器的操作,因此将交换作为删除操作会导致其他迭代器跳过某些元素。这就是我提到排队插入的原因。
插入和删除改变了容器的形状,所以我假设它们可以通过同步操作来处理,但是插入删除的动作可以在当前内容的迭代过程中排队。