Класс 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Коллекция, содержащая элементы одного типа.
IEnumeratorPtrТип Enumerator.
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.
  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
*/

См. также