English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base di C++

C++ 流程控制

Funzioni in C++

C++ 数组 & 字符串

C++ 数据结构

C++ 类 & 对象

Puntatori in C++

Ereditarietà in C++

Tutorial di STL in C++

C++ 参考手册

Queue (coda) in C++

在计算机科学领域,我们致力于各种程序。他们每个人都有自己的领域和实用程序。根据程序创建的目的和环境,我们有大量数据结构可供选择。其中之一就是“队列”。在讨论这种数据类型之前,让我们看一下它的语法。

语法

template<class T, class Container = deque<T> > class queue;

此数据结构适用于FIFO技术,其中FIFO表示先进先出。首先插入的元素将首先被提取,依此类推。有一个称为“前”的元素,它是位于最前位置或位于第一个位置的元素,也有一个名为“后”的元素,它是位于最后位置的元素。在普通队列中,元素的插入在尾部,而删除则从前面开始。

应用程序区域中的队列隐含为容器适配器。

容器应支持以下操作列表:

  • empty

  • size

  • push_back

  • pop_front

  • front

  • back

模板参数

T:参数指定容器适配器将保留的元素的类型。

Container:参数指定容器内部对象,其中保留队列的元素。

成员类型

以下列出了队列成员类型的列表,并对它们进行了简要描述。

成员类型Descrizione
value_typeSpecifica il tipo degli elementi.
container_typeSpecifica il tipo di contenitore di base.
size_typeSpecifica l'intervallo di dimensione degli elementi.
referenceÈ un tipo di riferimento al contenitore.
const_referenceÈ un tipo di riferimento alla constante del contenitore.

Funzione

Grazie a queste funzioni, è possibile utilizzare oggetti o variabili nel campo della programmazione. La coda offre molte funzioni che possono essere utilizzate o incapsulate nel programma. Ecco la lista:

FunzioneDescrizione
(costruttore)Questa funzione serve per costruire il contenitore della coda.
emptyQuesta funzione serve per testare se la coda è vuota. Se la coda è vuota, questa funzione restituisce true, altrimenti restituisce false.
sizeQuesta funzione restituisce il numero di elementi nella coda.
frontQuesta funzione restituisce l'elemento primo. Questo elemento ha un ruolo molto importante perché tutte le operazioni di rimozione vengono eseguite sull'elemento in testa.
backQuesta funzione restituisce l'elemento ultimo. Questo elemento ha un ruolo molto importante perché tutte le operazioni di inserimento vengono eseguite sull'elemento posteriore.
pushQuesta funzione serve per inserire un nuovo elemento alla fine.
popQuesta funzione serve per eliminare l'elemento primo.
emplaceQuesta funzione serve per inserire un nuovo elemento sopra l'elemento posteriore corrente nella coda.
swapQuesta funzione serve per scambiare il contenuto di due contenitori di riferimento.
operatori di relazioneLe funzioni non membri specificano gli operatori di relazione necessari per la coda.
uses allocator<queue>Come suggerisce il nome, le funzioni non membri utilizzano l'allocatore per la coda.

Esempio: Un programma semplice che mostra l'uso delle funzioni di base della coda.

#include <iostream>
#include <queue>
using namespace std;
void showsg(queue<int> sg)
{
	queue<int> ss = sg;
	while (!ss.empty())
	{
		cout << '\t' << ss.front();
		ss.pop();
	}
	cout << '\n';
}
int main()
{
	queue<int> fquiz;
	fquiz.push(10);
	fquiz.push(20);
	fquiz.push(30);
	cout << "队列fquiz是 : ";
	showsg(fquiz);
	cout << "\nfquiz.size() : " << fquiz.size();
	cout << "\nfquiz.front() : " << fquiz.front();
	cout << "\nfquiz.back() : " << fquiz.back();
	cout << "\nfquiz.pop() : ";
	fquiz.pop();
	showsg(fquiz);
	return 0;
}

Output:

La coda fquiz è : 10 20 30
fquiz.size() : 3
fquiz.front() : 10
fquiz.back() : 30
fquiz.pop() : 20 30