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:Windows SDK 版本 10.0.17763.0 (Windows 10 版本 1809)
命名空间: winrt
标头: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (默认包含)
成员函数
函数 | 说明 |
---|---|
vector_view_base::First 函数 | 检索表示由vector_view_base对象查看的第一个元素的 IIterator。 |
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 对象查看的元素数。 |
迭代器
vector_view_base是一个范围,该范围由内部自由函数定义, (每个函数检索与标准语言功能兼容的迭代器) 。 因此,可以使用基于for
范围的语句枚举由vector_view_base对象查看的元素。
还可以从 vector_view_base::First 函数检索 IIterator,并使用该函数循环访问由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 函数
检索表示由vector_view_base对象查看的第一个元素的 IIterator。
语法
auto First();
返回值
表示由vector_view_base对象查看的第一个元素的 IIterator。
vector_view_base::GetAt 函数
检索 由vector_view_base 对象查看的指定索引处的元素。
语法
T GetAt(uint32_t const index) const;
parameters
index
从零开始的元素索引。
返回值
由vector_view_base对象查看的指定索引处的元素。
vector_view_base::GetMany 函数
从给定索引处开始检索 由vector_view_base 对象查看的元素集合。
语法
uint32_t GetMany(uint32_t const startIndex, array_view<T> values) const;
parameters
startIndex
要从零开始的元素索引。
values
要将项复制到的 array_view 。
返回值
一个值,表示检索的元素数。
vector_view_base::IndexOf 函数
检索 由vector_view_base 对象查看的指定元素的索引。
语法
bool IndexOf(T const& value, uint32_t& index) const noexcept;
parameters
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 对象查看的元素数。