Używanie funkcji stack::top i stack::empty STL w programie Visual C++
W tym artykule pokazano, jak używać stack::top
funkcji I stack::empty
STL w programie Visual C++. Informacje zawarte w tym artykule dotyczą tylko niezarządzanego kodu visual C++.
Oryginalna wersja produktu: Visual C++
Oryginalny numer KB: 158040
Wymagany nagłówek
<stack>
Prototyp
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;
Uwaga
Nazwy klas lub parametrów w prototypie mogą nie być zgodne z wersją w pliku nagłówka. Niektóre z nich zostały zmodyfikowane w celu poprawy czytelności.
Opis funkcji stack::top i stack::empty
Funkcja top
zwraca najwyższy element stosu. Przed wywołaniem top
funkcji należy upewnić się, że na stosie znajduje się co najmniej jeden element. Pierwsza wersja top
funkcji zwraca odwołanie do elementu w górnej części stosu, co umożliwia zmodyfikowanie wartości. Druga funkcja zwraca stałe odwołanie, zapewniając, że stos nie zostanie przypadkowo zmodyfikowany.
Funkcja empty
zwraca wartość true , jeśli w stosie nie ma żadnych elementów. Jeśli istnieje co najmniej jeden element, funkcja zwróci wartość false. Należy użyć funkcji, empty
aby sprawdzić, czy na stosie pozostały elementy przed wywołaniem top
funkcji.
Przykładowy kod
//////////////////////////////////////////////////////////////////////
// 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();
}
}
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla