Зачем нужен queue основанный на deque?

Как известно, queue - это класс адаптер, в основе которого по умолчанию лежит deque. Все что делает queue - урезает функционал deque, вследствие чего у меня возникает вопрос об эффективности queue по умолчанию, ведь deque - это гибрид между двухсвязным списком и динамическим массивом, соответственно он обеспечивает вставку/извлечение данных в конец и произвольный доступ к данным с приемлемой скоростью, но не такой большой как у контейнеров со структурами данных предназначенными для отдельной задачи(list, vector), ведь это гибрид. Однако queue не поддерживает произвольный доступ, а значит deque в основе неэффективен. Я узнал что структуру данных по умолчанию можно изменить на list или vector:

queue<char, list<char> > value;

Как по мне, list идеально подходит для основы очереди, но зачем нужна поддержка основ в виде вектора и деки(deque)?

P.S Уже сам понял что в каких ситуациях лучше использовать, помог в этом разобраться интересный бенчмарк. Лень писать ответ


Ответы (0 шт):