Поделиться через


шаблон структуры winrt::array_view (C++/WinRT)

Представление или диапазон смежных значений. Дополнительные примеры и сведения о winrt::array_viewсм. в типах данных C++ уровня "Стандартный" иC++/WinRT.

Синтаксис

template <typename T>
struct array_view

Параметры шаблона

typename T Тип значений (элементов), которые array_view представления или диапазоны.

Требования

минимальный поддерживаемый пакет SDK: windows SDK версии 10.0.17134.0 (Windows 10 версии 1803)

пространство имен : 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 function Возвращает ссылку на элемент в указанной позиции в объекте array_view.
array_view::back function Возвращает ссылку на последний элемент в объекте array_view.
array_view::begin function Возвращает итератор к первому элементу в объекте array_view.
array_view::cbegin function Возвращает итератор констант в первый элемент в объекте array_view.
array_view::cend function Возвращает константный итератор к одному за пределами (один за последним элементом) объекта array_view.
функции array_view::crbegin Возвращает обратный итератор констант к одному за пределами (один за последним элементом) array_view объекта.
array_view::crend function Возвращает обратный итератор констант в первый элемент в объекте array_view.
функция array_view::d ata Возвращает указатель на базовые данные, просматриваемые объектом array_view.
array_view::empty function Возвращает значение, указывающее, является ли объект array_view пустым (является представлением нулевого элемента).
array_view::end function Возвращает итератор к одному за пределами (один за последним элементом) array_view объекта.
array_view::front function Возвращает ссылку на первый элемент в объекте array_view.
array_view::rbegin function Возвращает обратный итератор к одному за пределами (один за последним элементом) объекта array_view.
array_view::rend function Возвращает обратный итератор первому элементу в объекте array_view.
array_view::size function Возвращает количество элементов в объекте array_view.

Операторы-члены

Оператор Описание
array_view::operator[] (оператор subscript) Возвращает ссылку на элемент в указанной позиции в объекте array_view.

Бесплатные операторы

Оператор Описание
оператор!= (оператор неравенства) Возвращает значение, указывающее, не совпадают ли два параметра друг с другом.
оператор< (оператор меньше, чем оператор) Возвращает значение, указывающее, меньше ли первый параметр, чем второй параметр.
оператор <= (оператор меньше или равно) Возвращает значение, указывающее, меньше ли первый параметр или равен второму параметру.
оператор == (оператор равенства) Возвращает значение, указывающее, равны ли два параметра друг другу.
оператор> (оператор больше) Возвращает значение, указывающее, больше ли первый параметр, чем второй параметр.
оператор >= (оператор больше или равно) Возвращает значение, указывающее, больше ли первый параметр или равен второму параметру.

Итераторы

array_view — это диапазон, и этот диапазон определяется array_view::begin и array_view::end, каждый из которых возвращает итератор (см. также array_view::cbegin и array_view::cend). Из-за этого можно перечислить символы в объекте array_view с помощью инструкции for диапазона или с помощью функции шаблона std::for_each.

#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 значение std::array, которое инициализирует объект array_view.

initializerListValue значение списка инициализатора, которое инициализирует объект array_view.

vectorValue значение std::vector, которое инициализирует объект array_view.

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 function

Возвращает ссылку на элемент в указанной позиции в объекте 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

Возвращает итератор констант в первый элемент в объекте array_view. См. итераторов.

Синтаксис

stdext::checked_array_iterator<T const> cbegin() const noexcept;

Возвращаемое значение

Константный итератор к первому элементу в объекте array_view.

функция array_view::cend

Возвращает константный итератор к одному за пределами (один за последним элементом) объекта array_view. См. итераторов.

Синтаксис

stdext::checked_array_iterator<T const> cend() const noexcept;

Возвращаемое значение

Константный итератор к одному за пределами (один за последним элементом) объекта array_view.

функция array_view::crbegin

Возвращает обратный итератор констант к одному за пределами (один за последним элементом) array_view объекта.

Синтаксис

std::reverse_iterator<stdext::checked_array_iterator<T const>> crbegin() const noexcept;

Возвращаемое значение

Констант обратный итератор к одному за пределами (один за последним элементом) объекта array_view.

функция array_view::crend

Возвращает обратный итератор констант в первый элемент в объекте array_view.

Синтаксис

std::reverse_iterator<stdext::checked_array_iterator<T const>> crend() const noexcept;

Возвращаемое значение

Констант обратный итератор к первому элементу в объекте 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;

Возвращаемое значение

true, если объект array_view пуст (является представлением нулевого элемента), в противном случае 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[] (оператор subscript)

Возвращает ссылку на элемент в указанной позиции в объекте 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.

оператор<= (оператор меньше или равно)

Возвращает значение, указывающее, меньше ли первый параметр или равен второму параметру.

Синтаксис

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.

оператор> (оператор больше)

Возвращает значение, указывающее, больше ли первый параметр, чем второй параметр.

Синтаксис

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.

См. также

  • пространства имен winrt