std::ranges::slide_view<V>::begin
From cppreference.com
< cpp | ranges | slide view
constexpr auto begin() requires (!(/*simple-view*/<V> && /*slide-caches-nothing*/<const V>)); |
(1) | (C++23から) |
constexpr auto begin() const requires /*slide-caches-nothing*/<const V>; |
(2) | (C++23から) |
slide_view の最初の要素へのイテレータを返します。
return iterator<false>(ranges::begin(base_), ranges::next(ranges::begin(base_), n_ - 1, ranges::end(base_)), n_);
それ以外の場合は、以下と同等です。return
iterator<false>(ranges::begin(base_), n_);. V が
slide-caches-first をモデルとする場合、この関数は後続の呼び出しで使用するために結果を cached_begin_ にキャッシュします。これは、range によって要求される償却定数時間計算量を提供するために必要です。2) 以下と同等です。return
iterator<true>(ranges::begin(base_), n_);.目次 |
[編集] パラメータ
(なし)
[編集] 戻り値
slide_view の最初の要素への イテレータ。これは、オーバーロード (1) では V、オーバーロード (2) では const V の、基底ビュー型の n_ サイズのサブ範囲を指します。
[編集] 例
このコードを実行
#include <iostream> #include <ranges> #include <string_view> using namespace std::literals; int main() { static constexpr auto source = {"∀x"sv, "∃y"sv, "ε"sv, "δ"sv}; auto view{std::ranges::slide_view(source, 2)}; const auto subrange{*(view.begin())}; for (std::string_view const s : subrange) std::cout << s << ' '; std::cout << '\n'; }
出力
∀x ∃y
[編集] 関連項目
| 終端へのイテレータまたはセンチネルを返す (public メンバ関数) | |
| (C++23) |
センチネルと slide_view::begin から返されたイテレータを比較します。 (関数) |