想知道为什么我的内存访问比我预期的要慢一些,我终于发现 Visual C++ 实现deque
确实有一个额外的内置间接层,破坏了我的内存局部性。
即它似乎持有一个数组T*
,而不是一个数组T
。
是否有另一种我可以与 VC++ 一起使用但没有此“功能”的实现,或者是否有某种方法(尽管我认为不太可能)能够在此实现中避免它?
我基本上是在寻找一个vector
在前面也有 O(1) 推送/弹出的。
我想我可以自己实现它,但是处理allocator
s 等是一件痛苦的事情,而且需要一段时间才能把它做好,所以如果可能的话,我宁愿使用以前编写/测试过的东西。