winrt::array_view结构模板(C++/WinRT)
连续一系列值的视图或范围。 有关 winrt::array_view的详细信息,请参阅 Standard C++ 数据类型和 C++/WinRT。
template <typename T>
struct array_view
typename T
array_view 视图或跨度的值(元素)的类型。
受支持的最低 SDK: Windows SDK 版本 10.0.17134.0 (Windows 10 版本 1803)
Namespace: winrt
标头: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (默认包含)
别名 | 类型 |
---|---|
array_view::value_type |
typename T 模板参数的同义词。 |
array_view::size_type | uint32_t的同义词。 |
array_view::reference | array_view::value_type&的同义词。 |
array_view::const_reference | array_view::value_type const&的同义词。 |
array_view::p inter | array_view::value_type*的同义词。 |
array_view::const_pointer | array_view::value_type const*的同义词。 |
array_view::iterator | array_view::value_type实现定义的数组迭代器的同义词。 |
array_view::const_iterator | array_view::value_type const实现定义的数组迭代器的同义词。 |
array_view::reverse_iterator | std::reverse_iterator<array_view::iterator>的同义词。 |
array_view::const_reverse_iterator | std::reverse_iterator<array_view::const_iterator>的同义词。 |
构造 函数 | 描述 |
---|---|
array_view::array_view构造函数 | 将 array_view 结构的新实例初始化为输入数据的视图(而不是视图)。 |
功能 | 描述 |
---|---|
array_view::at 函数 | 返回对位于 array_view 对象内指定位置的元素的引用。 |
array_view::back 函数 | 返回对 array_view 对象中最后一个元素的引用。 |
array_view::begin 函数 | 将迭代器返回到 array_view 对象中的第一个元素。 |
array_view::cbegin 函数 | 将常数迭代器返回到 array_view 对象中的第一个元素。 |
array_view::cend 函数 | 将常量迭代器返回到 array_view 对象末尾(一个超出最后一个元素)的迭代器。 |
array_view::crbegin 函数 | 将常量反向迭代器返回到 array_view 对象最后一个元素末尾(一个超出最后一个元素)的迭代器。 |
array_view::crend 函数 | 将常数反向迭代器返回到 array_view 对象中的第一个元素。 |
array_view::d ata 函数 | 返回指向 array_view 对象正在查看的基础数据的指针。 |
array_view::empty 函数 | 返回一个值,该值指示 array_view 对象是否为空(是零个元素的视图)。 |
array_view::end 函数 | 将迭代器返回到 array_view 对象末尾(一个超出最后一个元素)的迭代器。 |
array_view::front 函数 | 返回对 array_view 对象中第一个元素的引用。 |
array_view::rbegin 函数 | 将反向迭代器返回到 array_view 对象末尾(一个超出最后一个元素)的反向迭代器。 |
array_view::rend 函数 | 将反向迭代器返回到 array_view 对象中的第一个元素。 |
array_view::size 函数 | 返回 array_view 对象中的元素数。 |
算子 | 描述 |
---|---|
array_view::operator[] (下标运算符) | 返回对位于 array_view 对象内指定位置的元素的引用。 |
算子 | 描述 |
---|---|
运算符!= (不等运算符) | 返回一个值,该值指示这两个参数是否彼此不相等。 |
运算符<(小于运算符) | 返回一个值,该值指示第一个参数是否小于第二个参数。 |
运算符<= | 返回一个值,该值指示第一个参数是否小于或等于第二个参数。 |
operator== (相等运算符) | 返回一个值,该值指示这两个参数是否彼此相等。 |
运算符>(大于运算符) | 返回一个值,该值指示第一个参数是否大于第二个参数。 |
运算符>= | 返回一个值,该值指示第一个参数是否大于或等于第二个参数。 |
array_view 是一个范围,该范围由 array_view::begin 和 array_view::end 成员函数定义,每个函数返回迭代器(另请参阅 array_view::cbegin 和 array_view::cend)。 因此,可以使用基于范围的 for
语句或 std::for_each模板函数枚举 array_view 对象中的字符。
#include <iostream>
using namespace winrt;
...
template <typename T>
void Iterators(array_view<T> const& theArrayView)
{
for (T& element : theArrayView)
{
std::wcout << element << " ";
}
std::for_each(theArrayView.cbegin(), theArrayView.cend(), [](T const& element) { std::wcout << element << " "; });
}
将 array_view 结构的新实例初始化为输入数据的视图(而不是视图)。
array_view() noexcept;
template <typename C, uint32_t N> array_view(C(&rawArrayValue)[N]) noexcept;
template <typename C, uint32_t N> array_view(std::array<C, N> const& arrayValue) noexcept;
template <typename C, uint32_t N> array_view(std::array<C, N>& arrayValue) noexcept;
array_view(std::initializer_list<T> initializerListValue) noexcept;
template <typename C> array_view(std::vector<C> const& vectorValue) noexcept;
template <typename C> array_view(std::vector<C>& vectorValue) noexcept;
array_view(T* first, T* last) noexcept;
typename C
输入数据中的值(元素)的类型。
uint32_t N
输入数据中的值数(元素)。
rawArrayValue
初始化 array_view 对象的原始数组值。
arrayValue
初始化 array_view 对象的 std::array 值。
initializerListValue
初始化 array_view 对象的初始值设定项列表值。
vectorValue
初始化 array_view 对象的 std::vector 值。
first
last
指向用于初始化 array_view 对象的值的指针。 如果 first
等于 last
,则 array_view 对象为空。
using namespace winrt;
...
void Constructors()
{
// array_view() noexcept
array_view<byte const> fromDefault{};
byte theRawArray[]{ 99, 98, 97 };
// template <typename C, uint32_t N> array_view(C(&value)[N]) noexcept
array_view<byte const> fromRawArray{ theRawArray };
const std::array<byte, 3> theConstArray{ 99, 98, 97 };
// template <typename C, uint32_t N> array_view(std::array<C, N>& value) noexcept
array_view<byte const> fromConstArray{ theConstArray };
std::array<byte, 3> theArray{ 99, 98, 97 };
// template <typename C, uint32_t N> array_view(std::array<C, N> const& value) noexcept
array_view<byte const> fromArray{ theArray };
// array_view(std::initializer_list<T> value) noexcept
array_view<byte const> fromInitializerList{ 99, 98, 97 };
const std::vector<byte> theConstVector{ 99, 98, 97 };
// template <typename C> array_view(std::vector<C> const& value) noexcept
array_view<byte const> fromConstVector{ theConstVector };
std::vector<byte> theVector{ 99, 98, 97 };
// template <typename C> array_view(std::vector<C>& value) noexcept
array_view<byte const> fromVector{ theVector };
// array_view(T* first, T* last) noexcept
array_view<byte const> fromRange{ theArray.data(), theArray.data() + 2 }; // just the first two elements.
}
返回对位于 array_view 对象内指定位置的元素的引用。
T& at(uint32_t const pos);
T const& at(uint32_t const pos) const;
pos
从零开始的元素位置或索引。
对位于 array_view 对象内指定位置的元素的引用。
返回对 array_view 对象中最后一个元素的引用。
T const& back() const noexcept;
T& back() noexcept;
对 array_view 对象中最后一个元素的引用。
将迭代器返回到 array_view 对象中的第一个元素。 请参阅 迭代器。
stdext::checked_array_iterator<T const> begin() const noexcept;
stdext::checked_array_iterator<T> begin() noexcept;
指向 array_view 对象中第一个元素的迭代器。
将常数迭代器返回到 array_view 对象中的第一个元素。 请参阅 迭代器。
stdext::checked_array_iterator<T const> cbegin() const noexcept;
指向 array_view 对象中第一个元素的常客迭代器。
将常量迭代器返回到 array_view 对象末尾(一个超出最后一个元素)的迭代器。 请参阅 迭代器。
stdext::checked_array_iterator<T const> cend() const noexcept;
一个常量迭代器,指向 array_view 对象末尾(一个超出最后一个元素)的迭代器。
将常量反向迭代器返回到 array_view 对象最后一个元素末尾(一个超出最后一个元素)的迭代器。
std::reverse_iterator<stdext::checked_array_iterator<T const>> crbegin() const noexcept;
一个常量将迭代器反转为 array_view 对象末尾(一个超出最后一个元素) 的迭代器。
将常数反向迭代器返回到 array_view 对象中的第一个元素。
std::reverse_iterator<stdext::checked_array_iterator<T const>> crend() const noexcept;
array_view 对象中第一个元素的常客反向迭代器。
返回指向 array_view 对象正在查看的基础数据的指针。
T const* data() const noexcept;
T* data() noexcept;
指向 array_view 对象正在查看的基础数据的指针。
返回一个值,该值指示 array_view 对象是否为空(是零个元素的视图)。
bool empty() const noexcept;
如果 array_view 对象为空(是零元素的视图),则 true
否则 false
。
将迭代器返回到 array_view 对象末尾(一个超出最后一个元素)的迭代器。 请参阅 迭代器。
stdext::checked_array_iterator<T const> end() const noexcept;
stdext::checked_array_iterator<T> end() noexcept;
一个迭代器,指向 array_view 对象末尾(一个超出最后一个元素)的迭代器。
返回对 array_view 对象中第一个元素的引用。
T const& front() const noexcept;
T& front() noexcept;
对 array_view 对象中的第一个元素的引用。
返回对位于 array_view 对象内指定位置的元素的引用。
T const& operator[](uint32_t const pos) const noexcept;
T& operator[](uint32_t const pos) noexcept;
pos
从零开始的元素位置或索引。
对位于 array_view 对象内指定位置的元素的引用。
将反向迭代器返回到 array_view 对象末尾(一个超出最后一个元素)的反向迭代器。
std::reverse_iterator<stdext::checked_array_iterator<T const>> rbegin() const noexcept;
std::reverse_iterator<stdext::checked_array_iterator<T>> rbegin() noexcept;
反向迭代器到 array_view 对象末尾(一个超出最后一个元素)的反向迭代器。
将反向迭代器返回到 array_view 对象中的第一个元素。
std::reverse_iterator<stdext::checked_array_iterator<T const>> rend() const noexcept;
std::reverse_iterator<stdext::checked_array_iterator<T>> rend() noexcept;
array_view 对象中第一个元素的反向迭代器。
返回 array_view 对象中的元素数。
uint32_t size() const noexcept;
包含 array_view 对象中的元素数的 uint32_t
。
返回一个值,该值指示这两个参数是否彼此不相等。
template <typename T> bool operator!=(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
left
right
要与其他参数进行比较的 array_view 值。
如果两个参数彼此不相等,则 true
否则 false
。
返回一个值,该值指示第一个参数是否小于第二个参数。
template <typename T> bool operator<(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
left
right
要与其他参数进行比较的 array_view 值。
如果第一个参数小于第二个参数,则 true
否则 false
。
返回一个值,该值指示第一个参数是否小于或等于第二个参数。
template <typename T> bool operator<=(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
left
right
要与其他参数进行比较的 array_view 值。
如果第一个参数小于或等于第二个参数,则 true
否则 false
。
返回一个值,该值指示这两个参数是否彼此相等。
template <typename T> bool operator==(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
left
right
要与其他参数进行比较的 array_view 值。
如果两个参数彼此相等,则 true
否则 false
。
返回一个值,该值指示第一个参数是否大于第二个参数。
template <typename T> bool operator>(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
left
right
要与其他参数进行比较的 array_view 值。
如果第一个参数大于第二个参数,则 true
否则 false
。
返回一个值,该值指示第一个参数是否大于或等于第二个参数。
template <typename T> bool operator>=(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
left
right
要与其他参数进行比较的 array_view 值。
如果第一个参数大于或等于第二个参数,则 true
否则 false
。