System::Collections::Generic::Stack klasse

Stack class

Stack class forward declaration.

template<typename T>class Stack : public System::Collections::Generic::IEnumerable<T>
ParameterBeschrijving
TElementtype.

Nested classes

Methoden

MethodeBeschrijving
AddRange(IEnumerablePtr)Voegt elementen toe aan de stack.
virtual Clear()Verwijdert alle elementen uit de stack.
virtual Contains(const T&) constControleert of een specifiek item aanwezig is in de container; gebruikt operator == voor vergelijking.
data()Interne gegevensstructuur-toegangsfunctie.
data() constInterne gegevensstructuur-toegangsfunctie.
virtual get_Count() constHaalt het aantal elementen in de stack op.
GetEnumerator() overrideHaalt enumerator op om door de huidige stack te itereren.
Peek()Haalt element van de bovenkant van de stack, maar behoudt het in de stack.
Pop()Haalt element van de bovenkant van de stack.
Push(const T&)Plaatst element op de bovenkant van de stack.
Stack()Construeert een lege stack.
Stack(int)Construeert een lege stack.
Stack(IEnumerablePtr)Copy-constructor.
virtual ToArray()Converteert de stack naar een array.
virtualizeBeginConstIterator() const overrideHaalt de implementatie van begin const iterator voor de huidige container op.
virtualizeBeginIterator() overrideHaalt de implementatie van begin iterator voor de huidige container op.
virtualizeEndConstIterator() const overrideHaalt de implementatie van end const iterator voor de huidige container op.
virtualizeEndIterator() overrideHaalt de implementatie van end iterator voor de huidige container op.

Typedefs

TypedefBeschrijving
IEnumerablePtrCollectie die elementen van hetzelfde type bevat.
IEnumeratorPtrEnumerator type.
stack_tRTTI-informatie.
ValueTypeWaarde‑type.

Opmerkingen

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()
{
  // Maak een instantie van de Stack-klasse.
  auto stack = MakeObject<Stack<int>>();

  // Vul de stack.
  stack->Push(1);
  stack->Push(2);
  stack->Push(3);

  // Print het laatste item van de stack. De Peek-methode verwijdert geen item uit de stack.
  std::cout << stack->Peek() << std::endl;
  PrintItems(stack);

  // Print het laatste item van de stack. De Pop-methode verwijdert een item uit de 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
*/

Zie ook