std::deque
поддерживает эффективную вставку и удаление в начале и конце структуры данных. Вы можете выполнять операции с очередями вручную, используя push_back
и pop_front
.
Очередь использует внутреннюю очередь по умолчанию. Это обертка, которая предоставляет только операции с очередями (поэтому вы не можете выполнять итерации по ней). Я задал подобный вопрос некоторое время назад, и лучший ответ дал мне хорошее представление о реальном использовании std::queue
. Нужно использовать std::queue
не потому, что нужна очередь, а чтобы прояснить, что в данной структуре данных допустимы только подобные очереди операции. Похоже, вам нужно больше свободы, чем это, поэтому используйте deque, list или какую-либо другую структуру с O (1) вставкой и удалением с обоих концов.