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

Базовый класс, из которого можно создать собственную пользовательскую коллекцию общего назначения, не наблюдаемую. Дополнительные сведения и примеры кода см. в разделе "Коллекции" с помощью C++/WinRT.

Синтаксис

template <typename D, typename T>
struct vector_base : vector_view_base<D, T, winrt::impl::collection_version>

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

typename D Имя производного типа.

typename T Тип элементов в vector_base.

Требования

Минимальный поддерживаемый пакет SDK: пакет SDK Windows версии 10.0.17763.0 (Windows 10, версия 1809)

Пространство имен: winrt

Заголовок: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (включен по умолчанию)

Функции элементов

Функция Описание
функция vector_base::Append Добавляет элемент в конец объекта vector_base .
функция vector_base::Clear Удаляет все элементы из объекта vector_base .
функция vector_base::First Извлекает IIterator , представляющий первый элемент в объекте vector_base .
функция vector_base::GetAt Извлекает элемент по указанному индексу в объекте vector_base .
функция vector_base::GetMany Извлекает коллекцию элементов в объекте vector_base , начиная с заданного индекса.
функция vector_base::GetView Извлекает неизменяемое представление объекта vector_base .
функция vector_base::IndexOf Извлекает индекс указанного элемента в объекте vector_base .
функция vector_base::InsertAt Вставляет элемент по указанному индексу в объект vector_base .
функция vector_base::RemoveAt Удаляет элемент по указанному индексу в объекте vector_base .
функция vector_base::RemoveAtEnd Удаляет последний элемент из объекта vector_base .
функция vector_base::ReplaceAll Заменяет все элементы в объекте vector_base указанными элементами.
функция vector_base::SetAt Задает значение элемента по указанному индексу в объекте vector_base .
функция vector_base::Size Извлекает количество элементов в объекте vector_base .

Iterators

Vector_base — это диапазон, который определяется внутренними бесплатными функциями (каждый из которых получает итератор), совместимый со стандартными языковыми функциями. Из-за этого можно перечислить элементы в объекте vector_base с помощью оператора на основе for диапазона.

Вы также можете получить IIterator из функции vector_base::First и использовать ее для итерации элементов в объекте vector_base .

...
#include <iostream>
using namespace winrt;
using namespace Windows::Foundation::Collections;
...
struct MyVector :
    implements<MyVector, IVector<float>, IVectorView<float>, IIterable<float>>,
    winrt::vector_base<MyVector, float>
{
    auto& get_container() const noexcept
    {
        return m_values;
    }

    auto& get_container() noexcept
    {
        return m_values;
    }

private:
    std::vector<float> m_values{ 0.1f, 0.2f, 0.3f };
};
...
IVector<float> coll{ winrt::make<MyVector>() };

for (auto const& el : coll)
{
    std::wcout << el << std::endl;
}

IIterator<float> it{ coll.First() };
while (it.HasCurrent())
{
    std::wcout << it.Current() << std::endl;
    it.MoveNext();
}

функция vector_base::Append

Добавляет элемент в конец объекта vector_base .

Синтаксис

void Append(T const& value);

Параметры

value Добавляемый элемент.

функция vector_base::Clear

Удаляет все элементы из объекта vector_base .

Синтаксис

void Clear() noexcept;

функция vector_base::First

Извлекает IIterator , представляющий первый элемент в объекте vector_base .

Синтаксис

auto First();

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

IIterator, представляющий первый элемент в объекте vector_base.

функция vector_base::GetAt

Извлекает элемент по указанному индексу в объекте vector_base .

Синтаксис

T GetAt(uint32_t const index) const;

Параметры

index Отсчитываемый от нуля индекс элемента.

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

Элемент по указанному индексу в объекте vector_base .

функция vector_base::GetMany

Извлекает коллекцию элементов в объекте vector_base , начиная с заданного индекса.

Синтаксис

uint32_t GetMany(uint32_t const startIndex, array_view<T> values) const;

Параметры

startIndex Отсчитываемый от нуля индекс элемента для начала.

valuesArray_view для копирования элементов.

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

Значение, представляющее количество полученных элементов.

функция vector_base::GetView

Извлекает неизменяемое представление объекта vector_base .

Синтаксис

winrt::Windows::Foundation::Collections::IVectorView<T> GetView() const noexcept;

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

IVectorView, содержащий неизменяемое представление vector_base.

функция vector_base::IndexOf

Извлекает индекс указанного элемента в объекте vector_base .

Синтаксис

bool IndexOf(T const& value, uint32_t& index) const noexcept;

Параметры

value Элемент в объекте vector_base для поиска.

index Отсчитываемый от нуля индекс элемента, если элемент найден, в противном случае число элементов в объекте vector_base .

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

true Значение , если элемент найден, в противном случае false.

функция vector_base::InsertAt

Вставляет элемент по указанному индексу в объект vector_base .

Синтаксис

void InsertAt(uint32_t const index, T const& value);

Параметры

index Отсчитываемый от нуля индекс, по которому необходимо вставить элемент.

value Вставляемый элемент.

функция vector_base::RemoveAt

Удаляет элемент по указанному индексу в объекте vector_base .

Синтаксис

void RemoveAt(uint32_t const index);

Параметры

index Отсчитываемый от нуля индекс удаляемого элемента.

функция vector_base::RemoveAtEnd

Удаляет последний элемент из объекта vector_base .

Синтаксис

void RemoveAtEnd();

функция vector_base::ReplaceAll

Заменяет все элементы в объекте vector_base указанными элементами.

Синтаксис

void ReplaceAll(array_view<T const> value);

Параметры

valueArray_view, содержащий новые элементы.

функция vector_base::SetAt

Задает значение элемента по указанному индексу в объекте vector_base .

Синтаксис

void SetAt(uint32_t const index, T const& value);

Параметры

index Отсчитываемый от нуля индекс элемента, значение которого необходимо задать.

value Заданное значение элемента.

функция vector_base::Size

Извлекает количество элементов в объекте vector_base .

Синтаксис

uint32_t Size() const noexcept;

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

Значение, представляющее количество элементов в объекте vector_base .

См. также раздел