std::ranges::slide_view<V>:: end
From cppreference.net
<
cpp
|
ranges
|
slide view
C++
Ranges library
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | |||||||||||||||||||
|
|||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
std::ranges::slide_view
| Member functions | ||||
|
slide_view::end
|
||||
|
(C++26)
|
||||
| Deduction guides | ||||
| Iterator | ||||
| Member functions | ||||
| Non-member functions | ||||
| Sentinel | ||||
| Member functions | ||||
| Non-member functions | ||||
|
constexpr
auto
end
(
)
requires ( ! ( /*simple-view*/ < V > && /*slide-caches-nothing*/ < const V > ) ) ; |
(1) | (C++23以降) |
|
constexpr
auto
end
(
)
const
requires /*slide-caches-nothing*/ < const V > ; |
(2) | (C++23以降) |
sentinel
または
iterator
を返します。これは
slide_view
の終端を表します。
1)
base_
と
n_
を基底データメンバとする。以下と等価:
-
V
が
slide-caches-nothingをモデル化する場合、 return iterator < false > ( ranges:: begin ( base_ ) + ranges:: range_difference_t < V > ( size ( ) ) , n_ ) ; 。 -
それ以外の場合、
V
が
slide-caches-lastをモデル化する場合、 return iterator < false > ( ranges:: prev ( ranges:: end ( base_ ) , n_ - 1 , ranges:: begin ( base_ ) ) , n_ ) ; 。 -
それ以外の場合、
V
が
common_rangeをモデル化する場合、 return iterator < false > ( ranges:: end ( base_ ) , ranges:: end ( base_ ) , n_ ) ; 。 - それ以外の場合、 return sentinel ( ranges:: end ( base_ ) ) ; 。
V
が
slide-caches-last
をモデル化する場合、この関数は結果を
cached_end_
内にキャッシュし、後続の呼び出しで使用します。これは、
range
で要求される償却定数時間計算量を提供するために必要です。
2)
次と同等:
begin
(
)
+
ranges::
range_difference_t
<
const
V
>
(
size
(
)
)
.
目次 |
パラメータ
(なし)
戻り値
sentinel
または
iterator
を表し、
slide_view
の終端を示す。
例
このコードを実行
#include <iostream> #include <ranges> int main() { static constexpr auto source = {'A', 'B', 'C', 'D'}; for (const auto subrange: source | std::views::slide(3)) { std::cout << "[ "; for (auto it = subrange.begin(); it != subrange.end(); ++it) std::cout << *it << ' '; std::cout << "]\n"; } }
出力:
[ A B C ] [ B C D ]
関連項目
|
先頭を指すイテレータを返す
(公開メンバ関数) |
|
|
(C++20)
|
範囲の先頭を指すイテレータを返す
(カスタマイゼーションポイントオブジェクト) |
|
(C++20)
|
範囲の終端を示すセンチネルを返す
(カスタマイゼーションポイントオブジェクト) |