stack::top et stack::empty
illustre comment utiliser pile : : haut et pile : : vide STL fonctionne dans Visual C++.
template<class _TYPE, class _C, class _A>
value_type& stack::top( );
template<class _TYPE, class _C, class _A>
const value_type& stack::top( ) const;
template<class _TYPE, class _C, class _A>
bool stack::empty( ) const;
Notes
[!REMARQUE]
Les noms de classes/paramètre dans le prototype ne correspondent pas à la version du fichier d'en-tête.certains ont été modifiés pour améliorer la lisibilité.
La fonction de haut retourne l'élément le plus haut de la pile.Vous devez vérifier qu'il existe un ou plusieurs éléments sur la pile avant d'appeler la fonction supérieure.La première version de la fonction supérieure retourne une référence à l'élément en haut de la pile, ce qui vous permet de modifier la valeur.La deuxième fonction retourne une référence à une constante, en vérifiant que vous ne changez pas par erreur la pile.La fonction vide retourne true s'il n'y a aucun élément dans la pile.Si un ou plusieurs éléments, la fonction retourne false.Vous devez utiliser la fonction vide pour vérifier qu'il existe des éléments restants dans la pile avant d'appeler la fonction supérieure.
Exemple
// StackTopEmpty.cpp
// compile with: /EHsc
// Illustrates how to use the top function to
// retrieve the last element of the controlled
// sequence. It also illustrates how to use the
// empty function to loop though the stack.
//
// Functions:
//
// top : returns the top element of the stack.
// empty : returns true if the stack has 0 elements.
//////////////////////////////////////////////////////////////////////
#pragma warning(disable:4786)
#include <stack>
#include <iostream>
using namespace std ;
typedef stack<int> STACK_INT;
int main()
{
STACK_INT stack1;
cout << "stack1.empty() returned " <<
(stack1.empty()? "true": "false") << endl; // Function 3
cout << "stack1.push(2)" << endl;
stack1.push(2);
if (!stack1.empty()) // Function 3
cout << "stack1.top() returned " <<
stack1.top() << endl; // Function 1
cout << "stack1.push(5)" << endl;
stack1.push(5);
if (!stack1.empty()) // Function 3
cout << "stack1.top() returned " <<
stack1.top() << endl; // Function 1
cout << "stack1.push(11)" << endl;
stack1.push(11);
if (!stack1.empty()) // Function 3
cout << "stack1.top() returned " <<
stack1.top() << endl; // Function 1
// Modify the top item. Set it to 6.
if (!stack1.empty()) { // Function 3
cout << "stack1.top()=6;" << endl;
stack1.top()=6; // Function 1
}
// Repeat until stack is empty
while (!stack1.empty()) { // Function 3
const int& t=stack1.top(); // Function 2
cout << "stack1.top() returned " << t << endl;
cout << "stack1.pop()" << endl;
stack1.pop();
}
}
Configuration requise
en-tête : <stack>