197 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			197 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: queue
							 | 
						|||
| 
								 | 
							
								localeTitle: очередь
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								## Очереди
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								`queue` является одним из наиболее используемых контейнеров в C ++. Контейнер представляет собой структуру данных, которая хранит коллекцию объектов, некоторые по порядку, некоторые - нет. Все контейнеры имеют другой набор функций, которые позволяют вам получить доступ к объекту (объектам) в этой коллекции.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								`std::queue` является частью стандартной библиотеки C ++ (отсюда и префикс `std::` и позволяет хранить данные в порядке First In First Out (FIFO). ПРИМЕЧАНИЕ. **Все объекты в очереди должны иметь один и тот же тип данных**
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Тип данных, который вы храните в очереди, находится в угловых скобках рядом с ключевым словом очереди. Например, если вы хотите сохранить коллекцию целых чисел, то очередь будет `std::queue<int> queue_name`
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Очередь LIFO Пояснение
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								`queue` позволяет нам нажимать / вставлять в очередь и поп / деактивировать в определенном порядке. **Push** означает вставку объекта в начале очереди. **Pop** означает вытащить «самый старый» объект из конца очереди. Поэтому, когда вы нажимаете его на передний план, и когда вы поп, вы извлекаете самый старый элемент.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Операции в очереди
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Контейнер очереди поддерживает следующие операции:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   push (enqueue)
							 | 
						|||
| 
								 | 
							
								*   pop (dequeue)
							 | 
						|||
| 
								 | 
							
								*   пустой
							 | 
						|||
| 
								 | 
							
								*   размер
							 | 
						|||
| 
								 | 
							
								*   фронт
							 | 
						|||
| 
								 | 
							
								*   назад
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### От себя
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Позволяет вставлять новый элемент в конце очереди после последнего текущего элемента.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```cpp
							 | 
						|||
| 
								 | 
							
								//Push operation in Queue 
							 | 
						|||
| 
								 | 
							
								 #include <iostream>       // std::cout 
							 | 
						|||
| 
								 | 
							
								 #include <queue>          // std::queue 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 int main () 
							 | 
						|||
| 
								 | 
							
								 { 
							 | 
						|||
| 
								 | 
							
								  std::queue<int> q; 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								  q.push(1);    //Pushing 1 at front of the queue 
							 | 
						|||
| 
								 | 
							
								  q.push(2);    //Pushing 2 at front of the queue 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								  return 0; 
							 | 
						|||
| 
								 | 
							
								 } 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### Фронт
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Позволяет получить доступ к следующему элементу в очереди, не удаляя его. Следующий элемент - это «самый старый» элемент в очереди.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```cpp
							 | 
						|||
| 
								 | 
							
								//Front operation in Queue 
							 | 
						|||
| 
								 | 
							
								 #include <iostream>       // std::cout 
							 | 
						|||
| 
								 | 
							
								 #include <queue>          // std::queue 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 int main () 
							 | 
						|||
| 
								 | 
							
								 { 
							 | 
						|||
| 
								 | 
							
								  std::queue<int> q; 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								  q.push(1);    //Pushing 1 at front of the queue 
							 | 
						|||
| 
								 | 
							
								  q.push(2);    //Pushing 2 at front of the queue 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								  std::cout<<q.front()<<'\n';     //Accessing the front of the queue 
							 | 
						|||
| 
								 | 
							
								  std::cout<<q.front()<<'\n';     //Accessing the front of the queue 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								  return 0; 
							 | 
						|||
| 
								 | 
							
								 } 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								Output: 
							 | 
						|||
| 
								 | 
							
								 1 
							 | 
						|||
| 
								 | 
							
								 1 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### поп
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Позволяет удалить следующий элемент в очереди, эффективно уменьшая его размер на единицу. Удаленный элемент является «самым старым» элементом.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```cpp
							 | 
						|||
| 
								 | 
							
								//Pop operation in Queue 
							 | 
						|||
| 
								 | 
							
								 #include <iostream>       // std::cout 
							 | 
						|||
| 
								 | 
							
								 #include <queue>          // std::queue 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 int main () 
							 | 
						|||
| 
								 | 
							
								 { 
							 | 
						|||
| 
								 | 
							
								  std::queue<int> q; 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								  q.push(1);    //Pushing 1 at front of the queue 
							 | 
						|||
| 
								 | 
							
								  q.push(2);    //Pushing 2 at front of the queue 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								  std::cout<<q.front()<<'\n';     //Accessing the front of the queue 
							 | 
						|||
| 
								 | 
							
								  q.pop();                        //Removing the oldest element 
							 | 
						|||
| 
								 | 
							
								  std::cout<<q.front()<<'\n';     //Accessing the front of the queue 
							 | 
						|||
| 
								 | 
							
								  q.pop();                        //Removing the oldest element 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								  return 0; 
							 | 
						|||
| 
								 | 
							
								 } 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								Output: 
							 | 
						|||
| 
								 | 
							
								 1 
							 | 
						|||
| 
								 | 
							
								 2 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### Размер
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Возвращает количество элементов в `queue` .
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```cpp
							 | 
						|||
| 
								 | 
							
								//Size operation in Queue 
							 | 
						|||
| 
								 | 
							
								 #include <iostream>       // std::cout 
							 | 
						|||
| 
								 | 
							
								 #include <queue>          // std::queue 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 int main () 
							 | 
						|||
| 
								 | 
							
								 { 
							 | 
						|||
| 
								 | 
							
								  std::queue<int> q; 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								  q.push(1);    //Pushing 1 at front of the queue 
							 | 
						|||
| 
								 | 
							
								  q.push(2);    //Pushing 2 at front of the queue 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								  std::cout<<q.size()<<'\n';     //Accessing the front of the queue 
							 | 
						|||
| 
								 | 
							
								  q.pop();                        //Removing the oldest element 
							 | 
						|||
| 
								 | 
							
								  std::cout<<q.size()<<'\n';     //Accessing the front of the queue 
							 | 
						|||
| 
								 | 
							
								  q.pop();                        //Removing the oldest element 
							 | 
						|||
| 
								 | 
							
								  std::cout<<q.size()<<'\n';     //Accessing the front of the queue 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								  return 0; 
							 | 
						|||
| 
								 | 
							
								 } 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								Output: 
							 | 
						|||
| 
								 | 
							
								 2 
							 | 
						|||
| 
								 | 
							
								 1 
							 | 
						|||
| 
								 | 
							
								 0 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### пустой
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Возвращает, является ли `queue` пустой, т. Е. Будет ли ваш размер очереди равен нулю. Он возвращает `true` если размер очереди 0 else возвращает `false`
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								\`\` \`cpp // Пустая операция в очереди
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# включают // std :: cout
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# включают // std :: stack
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								int main () { станд :: очереди д;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								q.push (1); q.push (2);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								while (q.empty ()! = true) { станд :: соиЬ << q.front () << '\\ п'; q.pop (); }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								std :: cout << "Вне цикла" << '\\ n'; return 0; }
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								    Output: 
							 | 
						|||
| 
								 | 
							
								    1 
							 | 
						|||
| 
								 | 
							
								    2 
							 | 
						|||
| 
								 | 
							
								    Out of loop 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 #### Back 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 Allows you to access the last element in the queue without removing it. 
							 | 
						|||
| 
								 | 
							
								 The next element is the "newest" element in the queue. 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								CPP // Назад в очереди
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# включают // std :: cout
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# включают // std :: queue
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								int main () { станд :: очереди д;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								q.push (1); // Нажатие 1 перед очередью q.push (2); // Нажатие 2 перед очередью
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								станд :: соиЬ << q.back () << '\\ п'; // Доступ к задней части очереди станд :: соиЬ << q.back () << '\\ п'; // Доступ к задней части очереди
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								return 0; } \`\` \`
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								Output: 
							 | 
						|||
| 
								 | 
							
								 2 
							 | 
						|||
| 
								 | 
							
								 2 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Дополнительные ресурсы:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								http://www.cplusplus.com/reference/queue/queue/
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Цитирование:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Предоставлено: https://en.wikipedia.org/wiki/FIFO _(вычислительная и_ электронная электроника)
							 |