Stack.Pop Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Usuwa i zwraca obiekt w górnej części obiektu Stack.
public:
virtual System::Object ^ Pop();
public virtual object Pop ();
public virtual object? Pop ();
abstract member Pop : unit -> obj
override this.Pop : unit -> obj
Public Overridable Function Pop () As Object
Zwraca
Usunięto Object element z górnej części obiektu Stack.
Wyjątki
Wartość jest pusta Stack .
Przykłady
W poniższym przykładzie pokazano, jak dodać elementy do Stackelementu , usunąć elementy z Stackobiektu lub wyświetlić element w górnej części obiektu Stack.
using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myCollection, char mySeparator );
int main()
{
// Creates and initializes a new Stack.
Stack^ myStack = gcnew Stack;
myStack->Push( "The" );
myStack->Push( "quick" );
myStack->Push( "brown" );
myStack->Push( "fox" );
// Displays the Stack.
Console::Write( "Stack values:" );
PrintValues( myStack, '\t' );
// Removes an element from the Stack.
Console::WriteLine( "(Pop)\t\t{0}", myStack->Pop() );
// Displays the Stack.
Console::Write( "Stack values:" );
PrintValues( myStack, '\t' );
// Removes another element from the Stack.
Console::WriteLine( "(Pop)\t\t{0}", myStack->Pop() );
// Displays the Stack.
Console::Write( "Stack values:" );
PrintValues( myStack, '\t' );
// Views the first element in the Stack but does not remove it.
Console::WriteLine( "(Peek)\t\t{0}", myStack->Peek() );
// Displays the Stack.
Console::Write( "Stack values:" );
PrintValues( myStack, '\t' );
}
void PrintValues( IEnumerable^ myCollection, char mySeparator )
{
IEnumerator^ myEnum = myCollection->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ obj = safe_cast<Object^>(myEnum->Current);
Console::Write( "{0}{1}", mySeparator, obj );
}
Console::WriteLine();
}
/*
This code produces the following output.
Stack values: fox brown quick The
(Pop) fox
Stack values: brown quick The
(Pop) brown
Stack values: quick The
(Peek) quick
Stack values: quick The
*/
using System;
using System.Collections;
public class SamplesStack {
public static void Main() {
// Creates and initializes a new Stack.
Stack myStack = new Stack();
myStack.Push( "The" );
myStack.Push( "quick" );
myStack.Push( "brown" );
myStack.Push( "fox" );
// Displays the Stack.
Console.Write( "Stack values:" );
PrintValues( myStack, '\t' );
// Removes an element from the Stack.
Console.WriteLine( "(Pop)\t\t{0}", myStack.Pop() );
// Displays the Stack.
Console.Write( "Stack values:" );
PrintValues( myStack, '\t' );
// Removes another element from the Stack.
Console.WriteLine( "(Pop)\t\t{0}", myStack.Pop() );
// Displays the Stack.
Console.Write( "Stack values:" );
PrintValues( myStack, '\t' );
// Views the first element in the Stack but does not remove it.
Console.WriteLine( "(Peek)\t\t{0}", myStack.Peek() );
// Displays the Stack.
Console.Write( "Stack values:" );
PrintValues( myStack, '\t' );
}
public static void PrintValues( IEnumerable myCollection, char mySeparator ) {
foreach ( Object obj in myCollection )
Console.Write( "{0}{1}", mySeparator, obj );
Console.WriteLine();
}
}
/*
This code produces the following output.
Stack values: fox brown quick The
(Pop) fox
Stack values: brown quick The
(Pop) brown
Stack values: quick The
(Peek) quick
Stack values: quick The
*/
Imports System.Collections
Public Class SamplesStack
Public Shared Sub Main()
' Creates and initializes a new Stack.
Dim myStack As New Stack()
myStack.Push("The")
myStack.Push("quick")
myStack.Push("brown")
myStack.Push("fox")
' Displays the Stack.
Console.Write("Stack values:")
PrintValues(myStack, ControlChars.Tab)
' Removes an element from the Stack.
Console.WriteLine("(Pop)" & ControlChars.Tab & ControlChars.Tab & _
"{0}", myStack.Pop())
' Displays the Stack.
Console.Write("Stack values:")
PrintValues(myStack, ControlChars.Tab)
' Removes another element from the Stack.
Console.WriteLine("(Pop)" & ControlChars.Tab & ControlChars.Tab & _
"{0}", myStack.Pop())
' Displays the Stack.
Console.Write("Stack values:")
PrintValues(myStack, ControlChars.Tab)
' Views the first element in the Stack but does not remove it.
Console.WriteLine("(Peek)" & ControlChars.Tab & ControlChars.Tab & _
"{0}", myStack.Peek())
' Displays the Stack.
Console.Write("Stack values:")
PrintValues(myStack, ControlChars.Tab)
End Sub
Public Shared Sub PrintValues(myCollection As IEnumerable, mySeparator As Char)
Dim obj As [Object]
For Each obj In myCollection
Console.Write("{0}{1}", mySeparator, obj)
Next obj
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' Stack values: fox brown quick The
' (Pop) fox
' Stack values: brown quick The
' (Pop) brown
' Stack values: quick The
' (Peek) quick
' Stack values: quick The
Uwagi
Ta metoda jest podobna Peek do metody , ale Peek nie modyfikuje metody Stack.
null
można w razie potrzeby wypchnąć do Stack symbolu zastępczego jako symbol zastępczy. Aby odróżnić wartość null od końca stosu, sprawdź Count właściwość lub przechwyć InvalidOperationExceptionelement , który jest zgłaszany, gdy Stack element jest pusty.
Ta metoda jest operacją O(1)
.