Compartilhar via


winrt::vector_view_base modelo de struct (C++/WinRT)

Uma classe base da qual você pode derivar para implementar sua própria exibição personalizada, ou intervalo, de uma sequência contígua de elementos em uma coleção de uso geral. Para obter mais informações e exemplos de código, consulte Coleções com C++/WinRT.

Syntax

template <typename D, typename T, typename Version = winrt::impl::no_collection_version>
struct vector_view_base : iterable_base<D, T, Version>

Parâmetros de modelo

typename D Seu nome de tipo derivado.

typename T O tipo dos elementos que o vector_view_base exibições ou abrange.

typename Version Um tipo que fornece política de controle de versão e serviços para a coleção.

Requisitos

SDK com suporte mínimo: Windows SDK versão 10.0.17763.0 (Windows 10, versão 1809)

Namespace: winrt

Cabeçalho: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (incluído por padrão)

Funções de membro

Função Descrição
função vector_view_base::First Recupera um IIterator que representa o primeiro elemento exibido pelo objeto vector_view_base .
Função vector_view_base::GetAt Recupera o elemento no índice especificado exibido pelo objeto vector_view_base .
Função vector_view_base::GetMany Recupera uma coleção de elementos exibidos pelo objeto vector_view_base começando no índice fornecido.
Função vector_view_base::IndexOf Recupera o índice de um elemento especificado exibido pelo objeto vector_view_base .
Função vector_view_base::Size Recupera o número de elementos exibidos pelo objeto vector_view_base .

Iterators

Um vector_view_base é um intervalo e esse intervalo é definido por funções livres internas (cada uma delas recupera um iterador) compatíveis com os recursos de linguagem padrão. Por isso, você pode enumerar os elementos exibidos por um objeto vector_view_base com uma instrução baseada em for intervalo.

Você também pode recuperar um IIterator da função vector_view_base::First e usá-lo para iterar por meio dos elementos exibidos por um objeto vector_view_base .

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

private:
    std::vector<float> m_values{ 0.1f, 0.2f, 0.3f };
};
...
IVectorView<float> view{ winrt::make<MyVectorView>() };

for (float el : view)
{
    std::wcout << el << std::endl;
}

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

função vector_view_base::First

Recupera um IIterator que representa o primeiro elemento exibido pelo objeto vector_view_base .

Sintaxe

auto First();

Valor retornado

Um IIterator que representa o primeiro elemento exibido pelo objeto vector_view_base .

Função vector_view_base::GetAt

Recupera o elemento no índice especificado exibido pelo objeto vector_view_base .

Sintaxe

T GetAt(uint32_t const index) const;

Parâmetros

index Um índice de elemento baseado em zero.

Valor retornado

O elemento no índice especificado exibido pelo objeto vector_view_base .

Função vector_view_base::GetMany

Recupera uma coleção de elementos exibidos pelo objeto vector_view_base começando no índice fornecido.

Sintaxe

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

Parâmetros

startIndex Um índice de elemento baseado em zero a ser iniciado.

values Um array_view para copiar os itens.

Valor retornado

Um valor que representa o número de elementos recuperados.

Função vector_view_base::IndexOf

Recupera o índice de um elemento especificado exibido pelo objeto vector_view_base .

Sintaxe

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

Parâmetros

value O elemento, exibido pelo objeto vector_view_base , para procurar.

index O índice baseado em zero do elemento se o elemento for encontrado, caso contrário, o número de elementos exibidos pelo objeto vector_view_base .

Valor retornado

true se o elemento for encontrado, caso contrário false.

Função vector_view_base::Size

Recupera o número de elementos exibidos pelo objeto vector_view_base .

Sintaxe

uint32_t Size() const noexcept;

Valor retornado

Um valor que representa o número de elementos exibidos pelo objeto vector_view_base .

Confira também