Класс System::Collections::Generic::Stack

Stack class

Stack class forward declaration.

template<typename T>class Stack : public System::Collections::Generic::IEnumerable<T>
ПараметрОписание
TТип элемента.

Nested classes

Методы

МетодОписание
AddRange(IEnumerablePtr)Помещает элементы в стек.
virtual Clear()Удаляет все элементы из стека.
virtual Contains(const T&) constПроверяет, присутствует ли конкретный элемент в контейнере; использует оператор == для сравнения.
data()Внутренний аксессор структуры данных.
data() constВнутренний аксессор структуры данных.
virtual get_Count() constПолучает количество элементов в стеке.
GetEnumerator() overrideПолучает перечислитель для обхода текущего стека.
Peek()Получает элемент с вершины стека, но оставляет его в стеке.
Pop()Получает элемент с вершины стека.
Push(const T&)Помещает элемент на вершину стека.
Stack()Создаёт пустой стек.
Stack(int)Создаёт пустой стек.
Stack(IEnumerablePtr)Конструктор копирования.
virtual ToArray()Преобразует стек в массив.
virtualizeBeginConstIterator() const overrideПолучает реализацию константного итератора begin для текущего контейнера.
virtualizeBeginIterator() overrideПолучает реализацию итератора begin для текущего контейнера.
virtualizeEndConstIterator() const overrideПолучает реализацию константного итератора end для текущего контейнера.
virtualizeEndIterator() overrideПолучает реализацию итератора end для текущего контейнера.

Typedefs

Определение типа.Описание
IEnumerablePtrКоллекция, содержащая элементы одного типа.
IEnumeratorPtrEnumerator тип.
stack_tИнформация RTTI.
ValueTypeТип значения.

Примечания

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()
{
  // Создать экземпляр класса Stack-class.
  auto stack = MakeObject<Stack<int>>();

  // Заполнить стек.
  stack->Push(1);
  stack->Push(2);
  stack->Push(3);

  // Вывести последний элемент стека. Метод Peek не удаляет элемент из стека.
  std::cout << stack->Peek() << std::endl;
  PrintItems(stack);

  // Вывести последний элемент стека. Метод Pop удаляет элемент из стека.
  std::cout << stack->Pop() << std::endl;
  PrintItems(stack);

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

См. также