System::Collections::Generic::Stack-klass

Stack class

Stack class forward declaration.

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

Nested classes

Metoder

MetodBeskrivning
AddRange(IEnumerablePtr)Lägger till element i stacken.
virtual Clear()Tar bort alla element från stacken.
virtual Contains(const T&) constKontrollerar om ett specifikt objekt finns i behållaren; använder operator == för jämförelse.
data()Intern åtkomst till datastruktur.
data() constIntern åtkomst till datastruktur.
virtual get_Count() constHämtar antalet element i stacken.
GetEnumerator() overrideHämtar enumerator för att iterera genom aktuell stack.
Peek()Hämtar element från stackens topp, men behåller det i stacken.
Pop()Hämtar elementet från toppen av stacken.
Push(const T&)Lägger elementet på toppen av stacken.
Stack()Skapar en tom stack.
Stack(int)Skapar en tom stack.
Stack(IEnumerablePtr)Kopieringskonstruktor.
virtual ToArray()Konverterar stacken till en array.
virtualizeBeginConstIterator() const overrideHämtar implementationen av begin const iterator för den aktuella behållaren.
virtualizeBeginIterator() overrideHämtar implementationen av begin iterator för den aktuella behållaren.
virtualizeEndConstIterator() const overrideHämtar implementationen av end const iterator för den aktuella behållaren.
virtualizeEndIterator() overrideHämtar implementationen av end iterator för den aktuella behållaren.

Typedefs

TypedefBeskrivning
IEnumerablePtrSamling som innehåller element av samma typ.
IEnumeratorPtrEnumerator typ.
stack_tRTTI-information.
ValueTypeVärdetyp.

Anmärkningar

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()
{
  // Skapa en instans av Stack-klassen.
  auto stack = MakeObject<Stack<int>>();

  // Fyll stacken.
  stack->Push(1);
  stack->Push(2);
  stack->Push(3);

  // Skriv ut det sista objektet i stacken. Peek-metoden tar inte bort ett objekt från stacken.
  std::cout << stack->Peek() << std::endl;
  PrintItems(stack);

  // Skriv ut det sista objektet i stacken. Pop-metoden tar bort ett objekt från stacken.
  std::cout << stack->Pop() << std::endl;
  PrintItems(stack);

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

Se även