Удивляясь, почему мои обращения к памяти были несколько медленнее, чем я ожидал, я наконец-то понял, что реализация deque
в Visual C ++ действительно имеет встроенный слой косвенной адресации extra , разрушающий мою память.
т.е. похоже, он содержит массив T*
, а не массив T
.
Есть ли другая реализация, которую я могу использовать с VC ++, у которой нет этой "функции", или есть какой-то способ (хотя я считаю это маловероятным), чтобы избежать ее в этой реализации?
Я в основном ищу vector
, который также имеет O (1) push / pop спереди.
Думаю, я мог бы реализовать это сам, но иметь дело с allocator
s и так сложно, и чтобы разобраться с этим потребовалось бы некоторое время, поэтому я бы предпочел использовать что-то ранее написанное / протестированное, если это возможно.