winrt::vector_view_base結構範本 (C++/WinRT)

基類,您可以從中衍生來實作一般用途集合中連續專案序列的自訂檢視或範圍。 如需詳細資訊和程式碼範例,請參閱 使用 C++/WinRT 的集合

語法

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

範本參數

typename D 衍生的類型名稱。

typename Tvector_view_base檢視或跨越的專案類型。

typename Version 類型,提供集合的版本設定原則和服務。

規格需求

最低支援的 SDK:Windows SDK 10.0.17763.0 版 (Windows 10 版本 1809)

命名空間: winrt

標頭: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion <> \cppwinrt\winrt\base.h 預設包含 ()

成員函數

函式 描述
vector_view_base::First 函式 擷取 IIterator ,代表 vector_view_base 物件所檢視的第一個專案。
vector_view_base::GetAt 函式 擷取 vector_view_base 物件所檢視之指定索引處的專案。
vector_view_base::GetMany 函式 從指定索引開始,擷取 vector_view_base 物件所檢視的專案集合。
vector_view_base::IndexOf 函式 擷取 vector_view_base 物件所檢視之指定專案的索引。
vector_view_base::Size 函式 擷取 vector_view_base 物件所檢視的專案數目。

迭代器

vector_view_base是一個範圍,而且該範圍是由內部可用函式所定義, (每個函式都會擷取與標準語言功能相容的反覆運算器) 。 因此,您可以使用範圍型 for 語句列舉vector_view_base物件所檢視的專案。

您也可以從vector_view_base::First函式擷取IIterator,並使用該函式逐一查看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();
}

vector_view_base::First 函式

擷取 IIterator ,代表 vector_view_base 物件所檢視的第一個專案。

語法

auto First();

傳回值

IIterator,代表vector_view_base物件所檢視的第一個專案。

vector_view_base::GetAt 函式

擷取 vector_view_base 物件所檢視之指定索引處的專案。

語法

T GetAt(uint32_t const index) const;

參數

index 以零起始的專案索引。

傳回值

vector_view_base 物件檢視之指定索引處的專案。

vector_view_base::GetMany 函式

從指定索引開始,擷取 vector_view_base 物件所檢視的專案集合。

語法

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

參數

startIndex 要從開始之以零起始的專案索引。

values 要複製專案的 array_view

傳回值

值,表示擷取的專案數目。

vector_view_base::IndexOf 函式

擷取 vector_view_base 物件所檢視之指定專案的索引。

語法

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

參數

value 要尋找 之vector_view_base 物件檢視的專案。

index 如果找到專案,則為專案以零起始的索引,否則為 vector_view_base 物件檢視的專案數。

傳回值

true 如果找到專案,則為 ,否則 false 為 。

vector_view_base::Size 函式

擷取 vector_view_base 物件所檢視的專案數目。

語法

uint32_t Size() const noexcept;

傳回值

值,表示 vector_view_base 物件所檢視的專案數目。

另請參閱