English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans le domaine des sciences informatiques, nous nous efforçons de développer divers programmes. Chacun d'eux a son propre domaine et utilité. Selon l'objectif de création du programme et l'environnement, nous avons une grande variété de structures de données disponibles. L'une d'elles est "pile". Avant de discuter de ce type de données, regardons sa grammaire.
template<class T, class Container = deque<T> > class stack;
Cette structure de données utilise la technologie LIFO, où LIFO signifie dernier entré, premier sorti. L'élément inséré en premier est extrait à la fin, et ainsi de suite. Il y a un élément appelé "top", qui est l'élément situé en haut de la pile. Toutes les opérations d'insertion et de suppression sont effectuées sur l'élément en haut de la pile lui-même.
La pile implicite dans l'application est un adaptateur de conteneur.
Le conteneur doit soutenir la liste des opérations suivantes :
empty
size
back
push_back
pop_back
T:Le paramètre spécifie le type d'élément que le conteneur adaptateur conservera.
Container:Le paramètre spécifie l'objet interne du conteneur utilisé pour contenir les éléments de la pile.
Voici la liste des types membres de la pile, avec une brève description.
Type membre | Description |
---|---|
value_type | Il spécifie le type de l'élément. |
container_type | Il spécifie le type de conteneur de base. |
size_type | Il spécifie la gamme de taille de l'élément. |
Grâce aux fonctions, on peut utiliser des objets ou des variables dans le domaine de la programmation. La pile 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 pile. |
empty | Cette fonction est utilisée pour tester si la pile est vide. Si la pile est vide, cette fonction retourne true, sinon retourne false. |
size | Cette fonction retourne la taille du conteneur de pile, qui est une mesure du nombre d'éléments stockés dans la pile. |
top | Cette fonction est utilisée pour accéder à l'élément en haut de la pile. Cet élément joue un rôle très important, car toutes les opérations d'insertion et de suppression sont exécutées sur l'élément en haut. |
push | Cette fonction est utilisée pour insérer un nouvel élément au sommet de la pile. |
pop | Cette fonction est utilisée pour supprimer des éléments, les éléments de la pile étant supprimés du sommet. |
emplace | Cette fonction est utilisée pour insérer un nouvel élément dans la pile située au-dessus de l'élément en haut de la pile actuelle. |
swap | Cette fonction est utilisée pour échanger le contenu des deux conteneurs de référence. |
opérateurs relationnels | Les fonctions non membres spécifient les opérateurs relationnels nécessaires pour la pile. |
uses allocator<stack> | Comme son nom l'indique, la fonction non membre utilise l'allocateur pour la pile. |
#include <iostream> #include <stack> using namespace std; void newstack(stack<int> ss) { stack<int> sg = ss; while (!sg.empty()) { cout << '\t' << sg.top(); sg.pop(); } cout << '\n'; } int main () { stack<int> newst; newst.push(55); newst.push(44); newst.push(33); newst.push(22); newst.push(11); cout << "Le dernier pile est : "; newstack(newst); cout << "\n newst.size() : " << newst.size(); cout << "\n newst.top() : " << newst.top(); cout << "\n newst.pop() : "; newst.pop(); newstack(newst); return 0; }
Sortie :
Le dernier tas est : 11 22 33 44 55 newst.size() : 5 newst.top() : 11 newst.pop() : 22 33 44 55