Поскольку определение очереди не поддерживает такой интерфейс.Очередь - это структура данных FIFO, что означает «первым пришел - первым вышел».Очередь поддерживает операции enqueue и dequeue .
Представьте себе очередь как канал: вы вставляете данные в один конец, а с другого - вынимаете их - один за другим,Вставка данных называется enqueue, а извлечение их называется dequeue.Стандартная библиотека C ++ имеет std::queue
, которая определяет обе эти операции: push()
- это имя операции постановки в очередь, а операция удаления разбита на два этапа, а именно front()
, за которыми следует pop()
.Объяснение того, почему dequeue был разделен на два этапа, состоит в том, чтобы дать строгую гарантию исключения 1 .
Википедия объясняет это кратко,
Очередь - это особый вид коллекции, в которой объекты в коллекции поддерживаются в порядке, а основные (или единственные) операции над коллекцией - это добавление объектов к заднему положению терминала и удаление объектов.из положения переднего терминала.Это делает очередь структурой данных «первым пришел - первым обслужен» (FIFO). В структуре данных FIFO первый элемент, добавленный в очередь, будет первым, который будет удален. Это эквивалентно требованию, что после добавления элемента все элементы, которые были добавлены ранее, должны бытьудаляется до того, как новый элемент может быть вызван.Очередь является примером линейной структуры данных.
1.Если вы хотите знать, насколько точно это дает надежную гарантию исключений, тогда вы можете начать другую тему, потому что это очень длинная история, и для ее правильного понимания требуется много терпения.Я бы посоветовал вам прочитать «Исключительный С ++» Херба Саттера для этого.