Stack.Push(Object) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vloží objekt do horní části objektu Stack.
public:
virtual void Push(System::Object ^ obj);
public virtual void Push (object obj);
public virtual void Push (object? obj);
abstract member Push : obj -> unit
override this.Push : obj -> unit
Public Overridable Sub Push (obj As Object)
Parametry
Příklady
Následující příklad ukazuje, jak přidat elementy do objektu Stack, odebrat elementy z objektu Stacknebo zobrazit prvek v horní části objektu 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
Poznámky
Pokud Count se již rovná kapacitě, kapacita objektu Stack se zvýší automatickým přerozdělováním interního pole a existující prvky se zkopírují do nového pole před přidáním nového prvku.
null
lze v případě potřeby nasunutím Stack na zástupný symbol. Zabírá slot v zásobníku a zpracovává se jako jakýkoli objekt.
Pokud Count je menší než kapacita zásobníku, Push jedná se o O(1)
operaci. Pokud je potřeba kapacitu zvýšit, aby vyhovovala novému prvku, Push stane se O(n)
operace, kde n
je Count.