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 Tvector_base内の要素の型。

必要条件

サポートされている最小 SDK: Windows SDK バージョン 10.0.17763.0 (Windows 10 Version 1809)

名前空間: winrt

ヘッダー: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (既定で含まれます)

メンバー関数

機能 説明
vector_base::Append 関数 vector_base オブジェクトの末尾に要素を追加します。
vector_base::Clear 関数 vector_base オブジェクトからすべての要素を削除します。
vector_base::First 関数 vector_base オブジェクト内の最初の要素を表す IIterator を取得します。
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は範囲であり、その範囲は、標準言語機能と互換性のある内部自由関数 (それぞれが反復子を取得) によって定義されます。 このため、範囲ベースforのステートメントを使用して、vector_base オブジェクト内の要素を列挙できます。

vector_base::First 関数から IIterator を取得し、これを使用して 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 関数

vector_base オブジェクト内の最初の要素を表す IIterator を取得します。

構文

auto First();

戻り値

vector_base オブジェクトの最初の要素を表す IIterator

vector_base::GetAt 関数

vector_base オブジェクト内の指定したインデックス位置にある要素を取得します。

構文

T GetAt(uint32_t const index) const;

パラメーター

index 0 から始まる要素インデックス。

戻り値

vector_base オブジェクト内の指定したインデックス位置にある要素。

vector_base::GetMany 関数

指定したインデックスから始まる vector_base オブジェクト内の要素のコレクションを取得します。

構文

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

パラメーター

startIndex 開始位置を指定する 0 から始まる要素インデックス。

values アイテムをコピーする array_view

戻り値

取得した要素の数を表す値。

vector_base::GetView 関数

vector_base オブジェクトの変更できないビューを取得します。

構文

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

戻り値

vector_baseの変更できないビューを含む IVectorView

vector_base::IndexOf 関数

vector_base オブジェクト内の指定した要素のインデックスを取得します。

構文

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

パラメーター

value検索するvector_base オブジェクト内の要素。

index 要素が見つかった場合の要素の 0 から始まるインデックス。それ以外の場合は 、vector_base オブジェクト内の要素の数。

戻り値

true 要素が見つかった場合は .。それ以外の場合 falseは 。

vector_base::InsertAt 関数

vector_base オブジェクト内の指定したインデックス位置に要素を挿入します。

構文

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

パラメーター

index 要素を挿入する位置の 0 から始まるインデックス。

value 挿入する要素。

vector_base::RemoveAt 関数

vector_base オブジェクト内の指定したインデックス位置にある要素を削除します。

構文

void RemoveAt(uint32_t const index);

パラメーター

index 削除する要素の 0 から始まるインデックス。

vector_base::RemoveAtEnd 関数

vector_base オブジェクトから最後の要素を削除します。

構文

void RemoveAtEnd();

vector_base::ReplaceAll 関数

vector_base オブジェクト内のすべての要素を、指定した要素に置き換えます。

構文

void ReplaceAll(array_view<T const> value);

パラメーター

value 新しい要素を含む array_view

vector_base::SetAt 関数

vector_base オブジェクト内の指定したインデックス位置にある要素の値を設定します。

構文

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

パラメーター

index 値を設定する要素の 0 から始まるインデックス。

value 設定する要素値。

vector_base::Size 関数

vector_base オブジェクト内の要素の数を取得します。

構文

uint32_t Size() const noexcept;

戻り値

vector_base オブジェクト内の要素の数を表す値。

こちらもご覧ください