В этой статье речь пойдет о таком контейнере STL как Queue. Или очередь, если по-русски. Название говорит само за себя. Это контейнер выполняет те же самые функции, что и очередь в обычной жизни. А именно:
- Добавляет элементы в конец очереди( push() )
- Удаляет элементы из начала очереди( pop() )
- Узнает значение последнего элемента( back() )
- Узнает значение первого элемента( front() )
- Узнает количество элементов в очереди( size() )
- Проверяет очередь на пустоту( empty() )
Чтобы работать с очередью нужно подключить соответствующую библиотеку:
#include <queue>
Объявление очереди происходит следующим образом:
queue <int> q;
Рассмотрим каждую функцию поподробнее.
push(). Добавляет элементы в конец очереди. Представьте себе очередь в магазине. Когда вы приходите и встаете в конец очереди с вами как будто делают push().
q.push(1);
q.push(2);
q.push(3);
// в очереди будет три элемента: 1 2 3. В начале очереди стоит 1, а в конце 3
pop(). Удаляет элементы из начала. То же самое, если вы совершили покупку и выходите из очереди.
q.push(7);
q.push(3);
q.push(8);
q.pop(); // удалили элемент 7
q.pop(); // удалил элемент 3
// в очереди остался элемент 8
back(); Узнаем последний элемент. Все равно, что вы стоите в очереди а к вам подходят и узнают ваше имя.
q.push(15);
q.push(9);
int a = q.back(); // a = 9
front(); Делает то же самое что и back() только с первым в очереди элементом.
q.push(18);
q.push(4);
int a = q.front();// a = 18
size(). Показывает кол-во элементов в очереди:
q.push(1); q.push(2); q.push(3); int a = q.size(); // a = 3
empty(). Булева функция, проверяющая пуста ли очередь.
q.push(1);
bool b = q.empty(); // b = false;
q.pop();
bool b = q.empty();// b = true;