Lưu ý
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử đăng nhập hoặc thay đổi thư mục.
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử thay đổi thư mục.
A view, or span, of a contiguous series of values. For more examples and info about winrt::array_view, see Standard C++ data types and C++/WinRT.
Syntax
template <typename T>
struct array_view
Template parameters
typename T
The type of the values (elements) that the array_view views, or spans.
Requirements
Minimum supported SDK: Windows SDK version 10.0.17134.0 (Windows 10, version 1803)
Namespace: winrt
Header: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (included by default)
Member type aliases
| Alias name | Type |
|---|---|
| array_view::value_type | A synonym for the typename T template parameter. |
| array_view::size_type | A synonym for uint32_t. |
| array_view::reference | A synonym for array_view::value_type&. |
| array_view::const_reference | A synonym for array_view::value_type const&. |
| array_view::pointer | A synonym for array_view::value_type*. |
| array_view::const_pointer | A synonym for array_view::value_type const*. |
| array_view::iterator | A synonym for an implementation-defined array iterator of array_view::value_type. |
| array_view::const_iterator | A synonym for an implementation-defined array iterator of array_view::value_type const. |
| array_view::reverse_iterator | A synonym for std::reverse_iterator<array_view::iterator>. |
| array_view::const_reverse_iterator | A synonym for std::reverse_iterator<array_view::const_iterator>. |
Constructors
| Constructor | Description |
|---|---|
| array_view::array_view constructor | Initializes a new instance of the array_view struct as a view over (and not a copy of) the input data. |
Member functions
| Function | Description |
|---|---|
| array_view::at function | Returns a reference to the element at the specified position within the array_view object. |
| array_view::back function | Returns a reference to the last element in the array_view object. |
| array_view::begin function | Returns an iterator to the first element in the array_view object. |
| array_view::cbegin function | Returns a const iterator to the first element in the array_view object. |
| array_view::cend function | Returns a const iterator to one beyond the end of (one beyond the last element in) the array_view object. |
| array_view::crbegin function | Returns a const reverse iterator to one beyond the end of (one beyond the last element in) the array_view object. |
| array_view::crend function | Returns a const reverse iterator to the first element in the array_view object. |
| array_view::data function | Returns a pointer to the underlying data being viewed by the array_view object. |
| array_view::empty function | Returns a value indicating whether the array_view object is empty (is a view on zero elements). |
| array_view::end function | Returns an iterator to one beyond the end of (one beyond the last element in) the array_view object. |
| array_view::front function | Returns a reference to the first element in the array_view object. |
| array_view::rbegin function | Returns a reverse iterator to one beyond the end of (one beyond the last element in) the array_view object. |
| array_view::rend function | Returns a reverse iterator to the first element in the array_view object. |
| array_view::size function | Returns the number of elements in the array_view object. |
Member operators
| Operator | Description |
|---|---|
| array_view::operator[] (subscript operator) | Returns a reference to the element at the specified position within the array_view object. |
Free operators
| Operator | Description |
|---|---|
| operator!= (inequality operator) | Returns a value indicating whether the two parameters are unequal to one another. |
| operator< (less-than operator) | Returns a value indicating whether the first parameter is less than the second parameter. |
| operator<= (less-than-or-equal-to operator) | Returns a value indicating whether the first parameter is less than or equal to the second parameter. |
| operator== (equality operator) | Returns a value indicating whether the two parameters are equal to one another. |
| operator> (greater-than operator) | Returns a value indicating whether the first parameter is greater than the second parameter. |
| operator>= (greater-than-or-equal-to operator) | Returns a value indicating whether the first parameter is greater than or equal to the second parameter. |
Iterators
An array_view is a range, and that range is defined by the array_view::begin and array_view::end member functions, each of which returns an iterator (also see array_view::cbegin and array_view::cend). Because of this, you can enumerate the characters in an array_view object with either a range-based for statement, or with the std::for_each template function.
#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 constructor
Initializes a new instance of the array_view struct as a view over (and not a copy of) the input data.
Syntax
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;
Template parameters
typename C
The type of the values (elements) in the input data.
uint32_t N
The number of values (elements) in the input data.
Parameters
rawArrayValue
A raw array value that initializes the array_view object.
arrayValue
A std::array value that initializes the array_view object.
initializerListValue
An initializer list value that initializes the array_view object.
vectorValue
A std::vector value that initializes the array_view object.
first last
Pointers to values with which to initialize the array_view object. If first equals last, then the array_view object is empty.
Example
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 function
Returns a reference to the element at the specified position within the array_view object.
Syntax
T& at(uint32_t const pos);
T const& at(uint32_t const pos) const;
Parameters
pos
A zero-based element position, or index.
Return value
A reference to the element at the specified position within the array_view object.
array_view::back function
Returns a reference to the last element in the array_view object.
Syntax
T const& back() const noexcept;
T& back() noexcept;
Return value
A reference to the last element in the array_view object.
array_view::begin function
Returns an iterator to the first element in the array_view object. See Iterators.
Syntax
stdext::checked_array_iterator<T const> begin() const noexcept;
stdext::checked_array_iterator<T> begin() noexcept;
Return value
An iterator to the first element in the array_view object.
array_view::cbegin function
Returns a const iterator to the first element in the array_view object. See Iterators.
Syntax
stdext::checked_array_iterator<T const> cbegin() const noexcept;
Return value
A const iterator to the first element in the array_view object.
array_view::cend function
Returns a const iterator to one beyond the end of (one beyond the last element in) the array_view object. See Iterators.
Syntax
stdext::checked_array_iterator<T const> cend() const noexcept;
Return value
A const iterator to one beyond the end of (one beyond the last element in) the array_view object.
array_view::crbegin function
Returns a const reverse iterator to one beyond the end of (one beyond the last element in) the array_view object.
Syntax
std::reverse_iterator<stdext::checked_array_iterator<T const>> crbegin() const noexcept;
Return value
A const reverse iterator to one beyond the end of (one beyond the last element in) the array_view object.
array_view::crend function
Returns a const reverse iterator to the first element in the array_view object.
Syntax
std::reverse_iterator<stdext::checked_array_iterator<T const>> crend() const noexcept;
Return value
A const reverse iterator to the first element in the array_view object.
array_view::data function
Returns a pointer to the underlying data being viewed by the array_view object.
Syntax
T const* data() const noexcept;
T* data() noexcept;
Return value
A pointer to the underlying data being viewed by the array_view object.
array_view::empty function
Returns a value indicating whether the array_view object is empty (is a view on zero elements).
Syntax
bool empty() const noexcept;
Return value
true if the array_view object is empty (is a view on zero elements), otherwise false.
array_view::end function
Returns an iterator to one beyond the end of (one beyond the last element in) the array_view object. See Iterators.
Syntax
stdext::checked_array_iterator<T const> end() const noexcept;
stdext::checked_array_iterator<T> end() noexcept;
Return value
An iterator to one beyond the end of (one beyond the last element in) the array_view object.
array_view::front function
Returns a reference to the first element in the array_view object.
Syntax
T const& front() const noexcept;
T& front() noexcept;
Return value
A reference to the first element in the array_view object.
array_view::operator[] (subscript operator)
Returns a reference to the element at the specified position within the array_view object.
Syntax
T const& operator[](uint32_t const pos) const noexcept;
T& operator[](uint32_t const pos) noexcept;
Parameters
pos
A zero-based element position, or index.
Return value
A reference to the element at the specified position within the array_view object.
array_view::rbegin function
Returns a reverse iterator to one beyond the end of (one beyond the last element in) the array_view object.
Syntax
std::reverse_iterator<stdext::checked_array_iterator<T const>> rbegin() const noexcept;
std::reverse_iterator<stdext::checked_array_iterator<T>> rbegin() noexcept;
Return value
A reverse iterator to one beyond the end of (one beyond the last element in) the array_view object.
array_view::rend function
Returns a reverse iterator to the first element in the array_view object.
Syntax
std::reverse_iterator<stdext::checked_array_iterator<T const>> rend() const noexcept;
std::reverse_iterator<stdext::checked_array_iterator<T>> rend() noexcept;
Return value
A reverse iterator to the first element in the array_view object.
array_view::size function
Returns the number of elements in the array_view object.
Syntax
uint32_t size() const noexcept;
Return value
A uint32_t containing the number of elements in the array_view object.
operator!= (inequality operator)
Returns a value indicating whether the two parameters are unequal to one another.
Syntax
template <typename T> bool operator!=(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
Parameters
left right
An array_view value to compare with the other parameter.
Return value
true if the two parameters are unequal to one another, otherwise false.
operator< (less-than operator)
Returns a value indicating whether the first parameter is less than the second parameter.
Syntax
template <typename T> bool operator<(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
Parameters
left right
An array_view value to compare with the other parameter.
Return value
true if the first parameter is less than the second parameter, otherwise false.
operator<= (less-than-or-equal-to operator)
Returns a value indicating whether the first parameter is less than or equal to the second parameter.
Syntax
template <typename T> bool operator<=(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
Parameters
left right
An array_view value to compare with the other parameter.
Return value
true if the first parameter is less than or equal to the second parameter, otherwise false.
operator== (equality operator)
Returns a value indicating whether the two parameters are equal to one another.
Syntax
template <typename T> bool operator==(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
Parameters
left right
An array_view value to compare with the other parameter.
Return value
true if the two parameters are equal to one another, otherwise false.
operator> (greater-than operator)
Returns a value indicating whether the first parameter is greater than the second parameter.
Syntax
template <typename T> bool operator>(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
Parameters
left right
An array_view value to compare with the other parameter.
Return value
true if the first parameter is greater than the second parameter, otherwise false.
operator>= (greater-than-or-equal-to operator)
Returns a value indicating whether the first parameter is greater than or equal to the second parameter.
Syntax
template <typename T> bool operator>=(winrt::array_view<T> const& left, winrt::array_view<T> const& right) noexcept;
Parameters
left right
An array_view value to compare with the other parameter.
Return value
true if the first parameter is greater than or equal to the second parameter, otherwise false.