English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In the field of computer science, we are committed to various programs. Each one has its own domain and utility. According to the purpose and environment of program creation, we have a large number of data structures to choose from. One of them is 'queue'. Before discussing this data type, let's take a look at its syntax.
template<class T, class Container = deque<T> > class queue;
This data structure is suitable for FIFO technology, where FIFO stands for First In First Out. The first element inserted will be extracted first, and so on. There is an element called 'front', which is the element located at the front position or the first position, and there is also an element called 'back', which is the element located at the last position. In a normal queue, elements are inserted at the end, and deletion starts from the front.
In the application area, the queue is implicitly a container adapter.
The container should support the following list of operations:
empty
size
push_back
pop_front
front
back
T: The parameter specifies the type of elements that the container adapter will retain.
Container: The parameter specifies the internal object of the container, in which the queue elements are retained.
Below is a list of queue member types provided, with a brief description.
Types membres | Description |
---|---|
value_type | Il spécifie le type d'élément. |
container_type | Il spécifie le type de conteneur sous-jacent. |
size_type | Il spécifie la gamme de taille de l'élément. |
reference | C'est un type de référence de conteneur. |
const_reference | C'est un type de référence de conteneur constant. |
Grâce aux fonctions, on peut utiliser des objets ou des variables dans le domaine de la programmation. La file fournit un grand nombre de fonctions qui peuvent être utilisées ou intégrées dans un programme. La liste suivante est identique :
Fonction | Description |
---|---|
(constructeur) | Cette fonction est utilisée pour construire le conteneur de file. |
empty | Cette fonction est utilisée pour tester si la file est vide. Si la file est vide, cette fonction retourne true, sinon retourne false. |
size | Cette fonction retourne le nombre d'éléments dans la file. |
front | Cette fonction retourne l'élément premier. Cet élément joue un rôle très important, car toutes les opérations de suppression sont exécutées sur l'élément de front. |
back | Cette fonction retourne l'élément dernier. Cet élément joue un rôle très important, car toutes les opérations d'insertion sont exécutées sur l'élément suivant. |
push | Cette fonction est utilisée pour insérer un nouvel élément à la fin. |
pop | Cette fonction est utilisée pour supprimer l'élément premier. |
emplace | Cette fonction est utilisée pour insérer un nouvel élément au-dessus de l'élément suivant actuel dans la file. |
swap | Cette fonction est utilisée pour échanger le contenu de deux conteneurs mentionnés. |
opérateurs relationnels | Les fonctions non membres spécifient les opérateurs relationnels nécessaires pour la file. |
uses allocator<queue> | Comme son nom l'indique, la fonction non membre utilise l'allocateur pour la file. |
#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(); return 0; cout << '\n'; return 0; int main() { queue<int> fquiz; fquiz.push(10); fquiz.push(20); fquiz.push(30); cout << "La file fquiz est : "; fquiz.pop(); cout << "\nfquiz.size() : " << fquiz.size(); cout << "\nfquiz.front() : " << fquiz.front(); cout << "\nfquiz.back() : " << fquiz.back(); cout << "\nfquiz.back() :" << fquiz.back(); cout << "\nfquiz.pop() :"; fquiz.pop(); showsg(fquiz); return 0;
}
Sortie : 10 2Copyright © 3Copyright © La file fquiz est : 3 fquiz.size() : 10 fquiz.front() : 3Copyright © fquiz.back() : 2Copyright © 3Copyright ©