我使用一个按索引引用列表中事物的协议。存储这些东西的自然方式是在向量中,所以我可以在恒定时间内随机访问。但是从本质上讲,向量的开头有很多摆弄,包括插入和删除。指数越低,越摆弄。结果是大量复制向量的其余部分。
我想以相反的方式存储东西,在更高的向量索引(即更高的地址)上存储更低的协议索引,以最大限度地减少内容移动,但仍然能够通过协议索引透明地随机访问元素。理想的容器将是 std::vector 的直接替代品,指针算术等除外。我仍然想要指针算术,但可以自己处理相反的顺序。
周围有这样的课吗?
也许是一些我找不到的提升容器或一些晦涩难懂的政策?
编辑:实际上,让我感到震惊的是,我可以使用一种在 index之前和index0
之后保留空间的向量length-1
。双端队列不像我想的那样构建,它使用大块内存代替,防止指针算术。