Шаблон структуры 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
Отсчитываемый от нуля индекс элемента для начала.
values
Array_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 .