System::Collections::Generic::IEnumerator класс
IEnumerator class
Интерфейс перечислителя, который может использоваться для перебора некоторых элементов. Объекты этого класса должны создаваться только с помощью функции System::MakeObject(). Никогда не создавайте экземпляр этого типа в стеке или с помощью оператора new, так как это приведёт к ошибкам времени выполнения и/или сбоям утверждений. Всегда оборачивайте этот класс в указатель System::SmartPtr и используйте этот указатель для передачи его в функции в качестве аргумента.
template<typename T>class IEnumerator : public virtual System::IDisposable,
public System::Details::EnumeratorBasedIterator<T>,
protected System::Details::IteratorPointerUpdater<T, false>
| Параметр | Описание |
|---|
| T | Тип элемента. |
Методы
| Метод | Описание |
|---|
| AsVirtualizedIterator() | Подготавливает итератор для использования классом VirtualizedIterator. |
| CloneIterator() const override | Клонирует текущий итератор. |
| virtual Current() const | Получает текущий элемент. |
| virtual get_Current() const | Получает текущий элемент. |
| IEnumerator() | |
| IncrementIterator() override | Перемещает итератор на шаг вперёд. |
| InitializeIterator() override | Выполняет первый вызов MoveNext() и подготавливает объект перечислителя для использования VirtualizedIterator. |
| MarkOwnedByVirtualizedIterator() | Помечает перечислитель, принадлежащий виртуализированному итератору. |
| virtual MoveNext() | Перемещает перечислитель к следующему элементу. Если ранее ни один элемент не был выбран, устанавливает ссылку на первый доступный элемент. Если достигнут конец контейнера, ничего не делает. |
| virtual Reset() | Сбрасывает перечислитель в позицию перед первым элементом. |
| virtual ~IEnumerator() | |
Typedefs
| Определение типа | Описание |
|---|
| ValueType | Тип значения. |
Примечания
#include <system/collections/list.h>
#include <system/smart_ptr.h>
using namespace System;
using namespace System::Collections::Generic;
int main()
{
// Создайте экземпляр класса List.
auto collection = MakeObject<List<int>>();
// Заполните список.
collection->Add(1);
collection->Add(2);
collection->Add(3);
// Получите перечислитель списка.
auto enumerator = collection->GetEnumerator();
while (enumerator->MoveNext())
{
// Получите текущий элемент и выведите его.
std::cout << enumerator->get_Current() << ' ';
}
// Сбросьте перечислитель.
enumerator->Reset();
return 0;
}
/*
This code example produces the following output:
1 2 3
*/
См. также