Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment utiliser les stack::top
fonctions stL et stack::empty
les fonctions STL dans Visual C++. Les informations contenues dans cet article s’appliquent uniquement au code Visual C++ non managé.
Version du produit d’origine : Visual C++
Numéro de la base de connaissances d’origine : 158040
En-tête requis
<stack>
Prototype
template <class _TYPE, class _C, class _A> // Function 1
value_type &stack::top();
template <class _TYPE, class _C, class _A> // Function 2
const value_type &stack::top() const;
template <class _TYPE, class _C, class _A> // Function 3
bool stack::empty() const;
Note
Les noms de classe ou de paramètre dans le prototype peuvent ne pas correspondre à la version dans le fichier d’en-tête. Certains ont été modifiés pour améliorer la lisibilité.
Description des fonctions stack ::top et stack ::empty
La top
fonction retourne l’élément le plus haut de la pile. Vous devez vous assurer qu’il existe un ou plusieurs éléments sur la pile avant d’appeler la top
fonction. La première version de la top
fonction retourne une référence à l’élément du haut de la pile, ce qui vous permet de modifier la valeur. La deuxième fonction retourne une référence constante, ce qui garantit que vous ne modifiez pas accidentellement la pile.
La empty
fonction retourne true s’il n’y a aucun élément dans la pile. S’il existe un ou plusieurs éléments, la fonction retourne false. Vous devez utiliser la empty
fonction pour vérifier qu’il y a des éléments laissés sur la pile avant d’appeler la top
fonction.
Exemple de code
//////////////////////////////////////////////////////////////////////
// Compile options needed: /GX
// StackTop&Empty.cpp : 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.
// Copyright (c) 1996 Microsoft Corporation. All rights reserved.
//////////////////////////////////////////////////////////////////////
#pragma warning(disable : 4786)
#include <stack>
#include <iostream>
#if _MSC_VER > 1020 // if VC++ version is > 4.2
using namespace std; // std c++ libs implemented in std
#endif
typedef stack<int, deque<int>> STACK_INT;
void 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();
}
}