Шаблон структуры winrt::vector_view_base (C++/WinRT)

Базовый класс, из которого можно создать собственное пользовательское представление или диапазон непрерывной последовательности элементов в коллекции общего назначения. Дополнительные сведения и примеры кода см. в разделе "Коллекции" с помощью C++/WinRT.

Синтаксис

template <typename D, typename T, typename Version = winrt::impl::no_collection_version>
struct vector_view_base : iterable_base<D, T, Version>

Параметры шаблона

typename D Имя производного типа.

typename T Тип элементов, которые vector_view_base представления или диапазоны.

typename Version Тип, предоставляющий политику управления версиями и службы для коллекции.

Требования

Минимальный поддерживаемый пакет SDK: пакет SDK Windows версии 10.0.17763.0 (Windows 10, версия 1809)

Пространство имен: winrt

Заголовок: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (включен по умолчанию)

Функции элементов

Функция Описание
функция vector_view_base::First Извлекает IIterator , представляющий первый элемент, просматриваемый объектом vector_view_base .
функция vector_view_base::GetAt Извлекает элемент по указанному индексу, просматриваемого объектом vector_view_base .
функция vector_view_base::GetMany Извлекает коллекцию элементов, просматриваемых объектом vector_view_base , начиная с заданного индекса.
функция vector_view_base::IndexOf Извлекает индекс указанного элемента, просматриваемого объектом vector_view_base .
функция vector_view_base::Size Извлекает количество элементов, просматриваемых объектом vector_view_base .

Iterators

Vector_view_base — это диапазон, и этот диапазон определяется внутренними свободными функциями (каждый из которых получает итератор), совместимый со стандартными языковыми функциями. Из-за этого можно перечислить элементы, просматриваемые объектом vector_view_base с помощью инструкции на основе for диапазона.

Можно также получить IIterator из функции vector_view_base::First и использовать ее для итерации элементов, просматриваемых объектом vector_view_base .

...
#include <iostream>
using namespace winrt;
using namespace Windows::Foundation::Collections;
...
struct MyVectorView :
    implements<MyVectorView, IVectorView<float>, IIterable<float>>,
    winrt::vector_view_base<MyVectorView, float>
{
    auto& get_container() const noexcept
    {
        return m_values;
    }

private:
    std::vector<float> m_values{ 0.1f, 0.2f, 0.3f };
};
...
IVectorView<float> view{ winrt::make<MyVectorView>() };

for (float el : view)
{
    std::wcout << el << std::endl;
}

IIterator<float> it{ view.First() };
while (it.HasCurrent())
{
    std::wcout << it.Current() << std::endl;
    it.MoveNext();
}

функция vector_view_base::First

Извлекает IIterator , представляющий первый элемент, просматриваемый объектом vector_view_base .

Синтаксис

auto First();

Возвращаемое значение

IIterator, представляющий первый элемент, просматриваемый объектом vector_view_base.

функция vector_view_base::GetAt

Извлекает элемент по указанному индексу, просматриваемого объектом vector_view_base .

Синтаксис

T GetAt(uint32_t const index) const;

Параметры

index Отсчитываемый от нуля индекс элемента.

Возвращаемое значение

Элемент по указанному индексу, просматриваемый объектом vector_view_base .

функция vector_view_base::GetMany

Извлекает коллекцию элементов, просматриваемых объектом vector_view_base , начиная с заданного индекса.

Синтаксис

uint32_t GetMany(uint32_t const startIndex, array_view<T> values) const;

Параметры

startIndex Отсчитываемый от нуля индекс элемента для начала.

valuesArray_view для копирования элементов.

Возвращаемое значение

Значение, представляющее количество полученных элементов.

функция vector_view_base::IndexOf

Извлекает индекс указанного элемента, просматриваемого объектом vector_view_base .

Синтаксис

bool IndexOf(T const& value, uint32_t& index) const noexcept;

Параметры

value Элемент, просматриваемый объектом vector_view_base для поиска.

index Отсчитываемый от нуля индекс элемента, если элемент найден, в противном случае число элементов, просматриваемых объектом vector_view_base .

Возвращаемое значение

true Значение , если элемент найден, в противном случае false.

функция vector_view_base::Size

Извлекает количество элементов, просматриваемых объектом vector_view_base .

Синтаксис

uint32_t Size() const noexcept;

Возвращаемое значение

Значение, представляющее количество элементов, просматриваемых объектом vector_view_base .

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