Предыдущий пост -
Следующий пост -

std::queue

Рубрика: Контейнеры, Дата: 18 May, 2013, Автор:
Tags: ,

Рассмотрим очередь. Это походу односторонняя очередь. Первый вошол, первый вышел.

Заголовочные файлы.

#include <queue>
using std::queue;

Инициализация (constructors).

Основа по умолчанию deque, можно сделать list.

//test queue
#include <iostream>
using std::cout;
using std::endl;
#include <queue>
using std::queue;
#include <deque>
using std::deque;
#include <list>
using std::list;

int main()
{
	deque<int> deq(3,10);
	list<int> lis(4,20);
	queue<int> que;// создание пустой очереди

	//создание очереди
	//по умолчанию основа двусторонняя очередь
	queue<int> que1(deq);//3 по 10
	
	//создание очереди 
	//на основе list
	queue<int,list<int> > que2(lis);//4 по 20
	//вызов конструктора копирования
	queue<int,list<int> > que3(que2);//4 по 20
	
	//выведем, размеры
	cout <<"que.size()= "<<que.size()<<endl;//0
	cout <<"que1.size()= "<<que1.size()<<endl;//3
	cout <<"que2.size()= "<<que2.size()<<endl;//4
	cout <<"que3.size()= "<<que3.size()<<endl;//4

	return 0;
}

queue::empty()

Если пустая очередь, то true, если не пустая, то false.

//test queue
#include <iostream>
using std::cout;
using std::endl;
#include <queue>
using std::queue;

int main()
{
	queue<int> que;// создание пустой очереди
	
	if(que.empty()) cout <<"empty queue"<<endl;//empty queue
	else cout <<"not empty queue"<<endl;

	return 0;
}

queue::size()

Возвращает размер очереди.

//test queue
#include <iostream>
using std::cout;
using std::endl;
#include <queue>
using std::queue;
#include <deque>
using std::deque;

int main()
{
	deque<int> deq(4,5);//4 по 5
	queue<int> que;// создание пустой очереди
	queue<int> que1(deq);//копирование елементов 4 по 5
	
	cout <<"que.size()= "<<que.size()<<endl;//0
	cout <<"que1.size()= "<<que1.size()<<endl;//4

	return 0;
}

queue::front() и queue::back()

Доступ к первому элементу очереди.

//test queue
#include <iostream>
using std::cout;
using std::endl;
#include <queue>
using std::queue;
#include <deque>
using std::deque;

int main()
{
	queue<int> que;//создание пустой очереди
	que.push(3);
	que.push(4);
	que.push(10);
	cout <<"que.size()= "<<que.size()<<endl;//3
	//доступ к первому элементу очереди
	cout <<"que.front()= "<<que.front()<<endl;//3
	que.front()+=3;
	cout <<"que.front()= "<<que.front()<<endl;//6
	//доступ к последнему элементу очереди
	cout <<"que.back()= "<<que.back()<<endl;//10
	que.back()+=5;
	cout <<"que.back()= "<<que.back()<<endl;//15

	return 0;
}

queue::push()

Добавление элемента в конец очереди.

//test queue
#include <iostream>
using std::cout;
using std::endl;
#include <queue>
using std::queue;
#include <deque>
using std::deque;

int main()
{
	queue<int> que;//создание пустой очереди
	que.push(3);
	que.push(4);
	que.push(10);
	cout <<"que.size()= "<<que.size()<<endl;

	return 0;
}

queue::pop()

Удаление элемента из начала очереди.

//test queue
#include <iostream>
using std::cout;
using std::endl;
#include <queue>
using std::queue;
#include <deque>
using std::deque;

int main()
{
	queue<int> que;//создание пустой очереди
	que.push(3);
	que.push(4);
	que.push(10);
	cout <<"que.size()= "<<que.size()<<endl;

	cout <<"que.front()= "<<que.front()<<endl;//3
	que.pop();
	cout <<"que.front()= "<<que.front()<<endl;//4
	que.pop();
	cout <<"que.front()= "<<que.front()<<endl;//10

	return 0;
}

На этом queue кончается, начинаем учить priority_queue.

 

 

rss