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 T
vector_view_baseが表示またはスパンする要素の型。
typename Version
コレクションにバージョン管理ポリシーとサービスを提供する型。
必要条件
サポートされている最小 SDK: Windows SDK バージョン 10.0.17763.0 (Windows 10 Version 1809)
名前空間: winrt
ヘッダー: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (既定で含まれます)
メンバー関数
機能 | 説明 |
---|---|
vector_view_base::First 関数 | vector_view_base オブジェクトによって表示される最初の要素を表す IIterator を取得します。 |
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 オブジェクトによって表示される要素の数を取得します。 |
Iterators
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 関数
vector_view_base オブジェクトによって表示される最初の要素を表す IIterator を取得します。
構文
auto First();
戻り値
vector_view_base オブジェクトによって表示される最初の要素を表す IIterator。
vector_view_base::GetAt 関数
vector_view_base オブジェクトによって表示される、指定したインデックス位置にある要素を取得します。
構文
T GetAt(uint32_t const index) const;
パラメーター
index
0 から始まる要素インデックス。
戻り値
vector_view_base オブジェクトによって表示される、指定したインデックス位置にある要素。
vector_view_base::GetMany 関数
指定したインデックスから始まる vector_view_base オブジェクトによって表示される要素のコレクションを取得します。
構文
uint32_t GetMany(uint32_t const startIndex, array_view<T> values) const;
パラメーター
startIndex
開始位置を指定する 0 から始まる要素インデックス。
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
要素が見つかった場合の要素の 0 から始まるインデックス。それ以外の場合は 、vector_view_base オブジェクトによって表示される要素の数。
戻り値
true
要素が見つかった場合は .。それ以外の場合 false
は 。
vector_view_base::Size 関数
vector_view_base オブジェクトによって表示される要素の数を取得します。
構文
uint32_t Size() const noexcept;
戻り値
vector_view_base オブジェクトによって表示される要素の数を表す値。