Поделиться через


IIterator<T> Интерфейс

Определение

Поддерживает простую итерацию по коллекции.

public interface class IIterator
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(1786374243, 17152, 17818, 153, 102, 203, 182, 96, 150, 62, 225)]
template <typename T>
struct IIterator
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.Guid(1786374243, 17152, 17818, 153, 102, 203, 182, 96, 150, 62, 225)]
public interface IIterator<T>
Public Interface IIterator(Of T)

Параметры типа

T
Производный
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (появилось в v1.0)

Комментарии

Интерфейс IIterator<T> явно не скрыт языковой проекцией для .NET, но интерфейс IIterable\<T\> скрыт. В большинстве сценариев .NET, требующих API для объекта итератора, вы, вероятно, будете использовать IEnumerator<T> (возможно, с определенным ограничением типа), как это было получено при вызове IEnumerable<T>. GetEnumerator.

Если в коллекцию вносятся изменения, такие как добавление, изменение или удаление элементов, итератор может создавать исключение для всех операций.

Функции расширения C++/WinRT

Примечание

Функции расширения существуют в типах проекций C++/WinRT для определенных API среда выполнения Windows. Например, winrt::Windows::Foundation::IAsyncAction — это тип проекции C++/WinRT для IAsyncAction. Функции расширения не являются частью поверхности двоичного интерфейса приложения (ABI) фактических типов среда выполнения Windows, поэтому они не перечислены как члены API среда выполнения Windows. Но их можно вызывать из любого проекта C++/WinRT. См. статью Функции C++/WinRT, расширяющие среда выполнения Windows API.

operator++();
operator++(int);

Эти операторы разрешают циклы с диапазоном для среда выполнения Windows итерируемых объектов. Оператор префикса и постфикса ++ перемещает итератор и присваивает ему значение , nullptr если итератор завершен.

T operator*() const;

Разыменовывание итератора эквивалентно вызову Current.

using iterator_concept= std::input_iterator_tag;
using iterator_catetory = std::input_iterator_tag;
using value_type = T;
using difference_type = ptrdiff_t;
using pointer = void;
using reference = T;

Вложенные типы, которые улучшают взаимодействие с итераторами C++.

Свойства

Current

Возвращает текущий элемент в коллекции.

HasCurrent

Возвращает значение, указывающее, ссылается ли итератор на текущий элемент или находится в конце коллекции.

Методы

GetMany(T[])

Извлекает несколько элементов из итератора.

C++/WinRT Правильный синтаксис для проекции языка C++/WinRT — uint32_t GetMany(winrt::array_view<T> items);.

MoveNext()

Перемещает итератор к следующему элементу в коллекции.

Применяется к

См. также раздел