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