System::Collections::Generic::Stack Klasse

Stack class

Stack class forward declaration.

template<typename T>class Stack : public System::Collections::Generic::IEnumerable<T>
ParameterBeschreibung
TElementtyp.

Nested classes

Methoden

MethodeBeschreibung
AddRange(IEnumerablePtr)Fügt Elemente in den Stack ein.
virtual Clear()Löscht alle Elemente aus dem Stack.
virtual Contains(const T&) constPrüft, ob ein bestimmtes Element im Container vorhanden ist; verwendet den Operator == zum Vergleich.
data()Interner Zugriff auf die Datenstruktur.
data() constInterner Zugriff auf die Datenstruktur.
virtual get_Count() constErmittelt die Anzahl der Elemente im Stack.
GetEnumerator() overrideGibt einen Enumerator zurück, um durch den aktuellen Stack zu iterieren.
Peek()Liefert das Element vom oberen Ende des Stacks, lässt es aber im Stack.
Pop()Liefert das Element vom oberen Ende des Stacks.
Push(const T&)Legt das Element am oberen Ende des Stacks ab.
Stack()Erstellt einen leeren Stack.
Stack(int)Erstellt einen leeren Stack.
Stack(IEnumerablePtr)Kopierkonstruktor.
virtual ToArray()Konvertiert den Stack in ein Array.
virtualizeBeginConstIterator() const overrideLiefert die Implementierung des begin‑const‑Iterators für den aktuellen Container.
virtualizeBeginIterator() overrideLiefert die Implementierung des begin‑Iterators für den aktuellen Container.
virtualizeEndConstIterator() const overrideLiefert die Implementierung des end‑const‑Iterators für den aktuellen Container.
virtualizeEndIterator() overrideLiefert die Implementierung des end‑Iterators für den aktuellen Container.

Typedefs

Typedef.Beschreibung
IEnumerablePtrSammlung, die Elemente desselben Typs enthält.
IEnumeratorPtrEnumerator Typ.
stack_tRTTI-Informationen.
ValueTypeWerttyp.

Hinweise

Stack class wrapping std::list. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

#include <system/collections/stack.h>
#include <system/smart_ptr.h>

using namespace System;
using namespace System::Collections::Generic;

void PrintItems(const SmartPtr<IEnumerable<int>> &stack)
{
  for (const auto item: stack)
  {
    std::cout << item << ' ';
  }
  std::cout << std::endl;
}

int main()
{
  // Erstelle die Instanz der Stack-Klasse.
  auto stack = MakeObject<Stack<int>>();

  // Fülle den Stack.
  stack->Push(1);
  stack->Push(2);
  stack->Push(3);

  // Gib das letzte Element des Stacks aus. Die Peek-Methode entfernt kein Element aus dem Stack.
  std::cout << stack->Peek() << std::endl;
  PrintItems(stack);

  // Gib das letzte Element des Stacks aus. Die Pop-Methode entfernt ein Element aus dem Stack.
  std::cout << stack->Pop() << std::endl;
  PrintItems(stack);

  return 0;
}
/*
This code example produces the following output:
3
3 2 1
3
2 1
*/

Siehe auch