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 ointer | 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 函式 | 將 const 反覆運算器傳回至 array_view 物件中的第一個專案。 |
array_view::cend 函式 | 將 const 反覆運算器傳回至 array_view 對象最後一個項目結尾之後的反覆運算器。 |
array_view::crbegin 函式 | 將常數反向反覆運算器傳回至 array_view 物件結尾之後的常數反轉反覆運算器。 |
array_view::crend 函式 | 將 const 反向反覆運算器傳回至 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 建構函式
初始化 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::at 函式
傳回位於 array_view 物件內指定位置的項目參考。
語法
T& at(uint32_t const pos);
T const& at(uint32_t const pos) const;
參數
pos
以零起始的專案位置或索引。
傳回值
在 array_view 物件內指定位置的項目參考。
array_view::back 函式
傳回 array_view 對象中最後一個項目的參考。
語法
T const& back() const noexcept;
T& back() noexcept;
傳回值
array_view 物件中最後一個項目的參考。
array_view::begin 函式
將反覆運算器傳回至 array_view 物件中的第一個專案。 請參閱 反覆運算器。
語法
stdext::checked_array_iterator<T const> begin() const noexcept;
stdext::checked_array_iterator<T> begin() noexcept;
傳回值
array_view 物件中第一個專案的反覆運算器。
array_view::cbegin 函式
將 const 反覆運算器傳回至 array_view 物件中的第一個專案。 請參閱 反覆運算器。
語法
stdext::checked_array_iterator<T const> cbegin() const noexcept;
傳回值
array_view 物件中第一個專案的 const 反覆運算器。
array_view::cend 函式
將 const 反覆運算器傳回至 array_view 對象最後一個項目結尾之後的反覆運算器。 請參閱 反覆運算器。
語法
stdext::checked_array_iterator<T const> cend() const noexcept;
傳回值
const 反覆運算器,指向 array_view 物件結尾以外的一個反覆運算器(最後一個元素之後)。
array_view::crbegin 函式
將常數反向反覆運算器傳回至 array_view 物件結尾之後的常數反轉反覆運算器。
語法
std::reverse_iterator<stdext::checked_array_iterator<T const>> crbegin() const noexcept;
傳回值
const 將反覆運算器反轉為 array_view 物件結尾之後的反覆運算器(最後一個元素之後)。
array_view::crend 函式
將 const 反向反覆運算器傳回至 array_view 物件中的第一個專案。
語法
std::reverse_iterator<stdext::checked_array_iterator<T const>> crend() const noexcept;
傳回值
const 反向反覆運算器,指向 array_view 物件中的第一個專案。
array_view::d ata 函式
傳回 array_view 物件所檢視之基礎數據的指標。
語法
T const* data() const noexcept;
T* data() noexcept;
傳回值
array_view 對象檢視之基礎數據的指標。
array_view::empty 函式
傳回值,指出 array_view 物件是否空白(為零元素的檢視)。
語法
bool empty() const noexcept;
傳回值
如果 array_view 物件是空的,則 true
,否則 false
。
array_view::end 函式
將反覆運算器傳回至 array_view 物件結尾之後的反覆運算器(最後一個項目之後)。 請參閱 反覆運算器。
語法
stdext::checked_array_iterator<T const> end() const noexcept;
stdext::checked_array_iterator<T> end() noexcept;
傳回值
反覆運算器,指向 array_view 物件結尾之後的反覆運算器(最後一個元素之後)。
array_view::front 函式
傳回 array_view 物件中第一個項目的參考。
語法
T const& front() const noexcept;
T& front() noexcept;
傳回值
array_view 物件中第一個項目的參考。
array_view::operator[] (下標運算符)
傳回位於 array_view 物件內指定位置的項目參考。
語法
T const& operator[](uint32_t const pos) const noexcept;
T& operator[](uint32_t const pos) noexcept;
參數
pos
以零起始的專案位置或索引。
傳回值
在 array_view 物件內指定位置的項目參考。
array_view::rbegin 函式
將反向反覆運算器傳回至 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::rend 函式
將反向反覆運算器傳回至 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::size 函式
傳回 array_view 物件中的項目數。
語法
uint32_t size() const noexcept;
傳回值
uint32_t
,其中包含 array_view 物件中的項目數。
operator!= (不等運算符)
傳回值,指出兩個參數是否彼此不相等。
語法
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
。
operator<= (less-than-or-equal-to operator)
傳回值,指出第一個參數是否小於或等於第二個參數。
語法
template <typename T> bool operator<=(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
參數
left
right
要與其他參數比較的 array_view 值。
傳回值
如果第一個參數小於或等於第二個參數,則 true
,否則 false
。
operator== (等號運算符)
傳回值,指出兩個參數是否彼此相等。
語法
template <typename T> bool operator==(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
參數
left
right
要與其他參數比較的 array_view 值。
傳回值
如果兩個參數彼此相等,則 true
,否則 false
。
operator> (大於運算子)
傳回值,指出第一個參數是否大於第二個參數。
語法
template <typename T> bool operator>(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
參數
left
right
要與其他參數比較的 array_view 值。
傳回值
如果第一個參數大於第二個參數,則 true
否則 false
。
operator>= (大於或等於運算符)
傳回值,指出第一個參數是否大於或等於第二個參數。
語法
template <typename T> bool operator>=(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
參數
left
right
要與其他參數比較的 array_view 值。
傳回值
如果第一個參數大於或等於第二個參數,則 true
,否則 false
。