Существует ли структура данных, подобная очереди, которая также поддерживает удаление элементов в произвольных точках? Постановка в очередь и снятие очереди происходят чаще всего, но удаление элементов в средней очереди должно быть аналогичным по скорости, поскольку могут быть периоды, когда это является наиболее распространенной операцией. Постоянство производительности важнее абсолютной скорости. Время важнее памяти. Длина очереди мала, менее 1000 элементов при абсолютной пиковой нагрузке. В случае, если это не очевидно, я укажу это явно: случайная вставка не требуется.
Помечены тегами C ++, поскольку это мой язык реализации, но я не использую (и не хочу) использовать STL или Boost. Только на чистом C или C ++ (я преобразую решения C в класс C ++.)
Редактировать: я думаю, что мне нужен словарь, который также имеет интерфейс очереди (или очередь, которая также имеет интерфейс словаря), так что я могу делать что-то вроде этого:
Container.enqueue(myObjPtr1);
MyObj *myObjPtr2 = Container.dequeue();
Container.remove(myObjPtr3);