О дополнительной косвенности deque

Интересно, почему мой доступ к памяти был несколько медленнее, чем я ожидал, я наконец понял, что реализация deque в Visual C ++ действительно имеет встроенный дополнительный уровень косвенного обращения, разрушающий мою локализацию в памяти.

т.е. кажется, что он содержит массив T * , а не массив T .

Есть ли другая реализация, которую я могу использовать с VC ++, которая не имеет этой «возможности», или есть какой-то способ (хотя я считаю это маловероятным), чтобы избежать ее в этой реализации?

Я в основном ищу вектор , который также имеет O (1) push / pop спереди.
Думаю, я мог бы реализовать это сам, но иметь дело с распределителем и такой проблемой, и потребуется время, чтобы все исправить, поэтому я лучше воспользуюсь чем-нибудь предварительно написано / протестировано, если возможно.

6
задан Mehrdad 29 November 2011 в 03:31
поделиться