IVector<T> Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет коллекцию элементов с произвольным доступом.
.ЧИСТАЯ Этот интерфейс отображается в коде .NET как System.Collections.Generic.IList<T> из-за проекции языка .NET. В любом случае, когда тип среда выполнения Windows реализует IVector<T>, код .NET может использовать API IList<T>.
public interface class IVector : IIterable<T>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(2436052969, 4513, 17221, 163, 162, 78, 127, 149, 110, 34, 45)]
template <typename T>
struct IVector : IIterable<T>
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.Guid(2436052969, 4513, 17221, 163, 162, 78, 127, 149, 110, 34, 45)]
public interface IList<T> : IEnumerable<T>
Public Interface IList(Of T)
Implements IEnumerable(Of T)
Параметры типа
- T
- Атрибуты
- Реализации
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.FoundationContract (появилось в v1.0)
|
Комментарии
При программировании с помощью .NET этот интерфейс скрыт, и разработчики должны использовать интерфейс System.Collections.Generic.IList<T> , если они хотят реализовать тип вектора или списка. В любом случае, когда тип среда выполнения Windows реализует IVector<T>, код .NET может использовать API IList<T>. Сюда входят все существующие API среда выполнения Windows, а также такие сценарии, как использование API среда выполнения Windows компонентов, изначально реализованных в расширениях компонентов Visual C++ (C++/CX) из приложения C# или Visual Basic.
Интерфейс IVector<T> представляет коллекцию объектов указанного типа, к которым можно получить отдельный доступ по индексу. Свойства и методы IVector<T> поддерживают функции списка, такие как получение размера коллекции, а также добавление и удаление элементов в указанных местах в коллекции. Кроме того, метод GetView предоставляет snapshot вектора, наблюдаемое состояние которого не изменяется. Этот snapshot полезен, когда требуется представление коллекции для ссылки в последующих операциях, в которых используется IVector<T>.
Функции расширения C++/WinRT
Примечание
Функции расширения существуют в типах проекций C++/WinRT для определенных API среда выполнения Windows. Например, winrt::Windows::Foundation::IAsyncAction — это тип проекции C++/WinRT для IAsyncAction. Функции расширения не являются частью поверхности двоичного интерфейса приложения (ABI) фактических типов среда выполнения Windows, поэтому они не перечислены как члены API среда выполнения Windows. Но их можно вызывать из любого проекта C++/WinRT. См. статью Функции C++/WinRT, расширяющие среда выполнения Windows API.
auto begin() const;
Возвращает итератор первому элементу коллекции для использования в алгоритмах C++, таких как циклы на основе for
диапазона.
auto end() const;
Возвращает итератор к последнему элементу коллекции для использования в алгоритмах C++, таких как циклы на основе for
диапазона.
Наследование интерфейса
IVector наследует IIterable. Типы, реализующие IVector, также реализуют элементы интерфейса IIterable. Аналогичным образом, если вы используете .NET, существует поддержка IEnumerable<T>.
Свойства
Size |
Возвращает количество элементов в векторе. |
Методы
Append(T) |
Добавляет элемент в конец вектора. |
Clear() |
Удаляет все элементы из вектора. |
GetAt(UInt32) |
Возвращает элемент по указанному индексу в векторе. |
GetMany(UInt32, T[]) |
Извлекает несколько элементов из вектора, начиная с заданного индекса.
|
GetView() |
Возвращает неизменяемое представление вектора. |
IndexOf(T, UInt32) |
Извлекает индекс указанного элемента в векторе. |
InsertAt(UInt32, T) |
Вставляет элемент по указанному индексу в векторе. |
RemoveAt(UInt32) |
Удаляет элемент по указанному индексу в векторе. |
RemoveAtEnd() |
Удаляет последний элемент из вектора. |
ReplaceAll(T[]) |
Заменяет все элементы в векторе указанными элементами. |
SetAt(UInt32, T) |
Задает значение по указанному индексу в векторе. |