Clase System::Collections::Generic::Stack

Stack class

Stack class forward declaration.

template<typename T>class Stack : public System::Collections::Generic::IEnumerable<T>
ParámetroDescripción
TTipo de elemento.

Nested classes

Métodos

MétodoDescripción
AddRange(IEnumerablePtr)Inserta elementos en la pila.
virtual Clear()Elimina todos los elementos de la pila.
virtual Contains(const T&) constComprueba si un elemento específico está presente en el contenedor; usa el operador == para la comparación.
data()Accesor interno de la estructura de datos.
data() constAccesor interno de la estructura de datos.
virtual get_Count() constObtiene el número de elementos en la pila.
GetEnumerator() overrideObtiene el enumerador para iterar a través de la pila actual.
Peek()Obtiene el elemento de la parte superior de la pila, pero lo mantiene en la pila.
Pop()Obtiene el elemento de la parte superior de la pila.
Push(const T&)Coloca el elemento en la parte superior de la pila.
Stack()Construye una pila vacía.
Stack(int)Construye una pila vacía.
Stack(IEnumerablePtr)Constructor de copia.
virtual ToArray()Convierte la pila en una matriz.
virtualizeBeginConstIterator() const overrideObtiene la implementación del iterador const begin para el contenedor actual.
virtualizeBeginIterator() overrideObtiene la implementación del iterador begin para el contenedor actual.
virtualizeEndConstIterator() const overrideObtiene la implementación del iterador const end para el contenedor actual.
virtualizeEndIterator() overrideObtiene la implementación del iterador end para el contenedor actual.

Typedefs

TypedefDescripción
IEnumerablePtrColección que contiene elementos del mismo tipo.
IEnumeratorPtrTipo Enumerator.
stack_tInformación RTTI.
ValueTypeTipo de valor.

Observaciones

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()
{
  // Crea una instancia de la clase Stack.
  auto stack = MakeObject<Stack<int>>();

  // Llena la pila.
  stack->Push(1);
  stack->Push(2);
  stack->Push(3);

  // Imprime el último elemento de la pila. El método Peek no elimina ningún elemento de la pila.
  std::cout << stack->Peek() << std::endl;
  PrintItems(stack);

  // Imprime el último elemento de la pila. El método Pop elimina un elemento de la pila.
  std::cout << stack->Pop() << std::endl;
  PrintItems(stack);

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

Ver también