std::ranges::enumerate_view<V>::size
ja.cppreference.net より
constexpr auto size() requires ranges::sized_range<V>;
|
(1) | (C++23 から) |
constexpr auto size() const requires ranges::sized_range<const V>;
|
(2) | (C++23 から) |
要素の数を返す。以下と同等: return ranges::size(base_);。ここで base_ は元のビューである。
パラメータ
(なし)
戻り値
要素数。
例
このコードを実行
#include <cassert> #include <forward_list> #include <ranges> #include <string_view> int main() { constexpr static auto v1 = {1, 2, 3, 4, 5}; constexpr auto ev1{v1 | std::views::enumerate}; static_assert(ev1.size() == 5); static_assert(std::ranges::sized_range<decltype(v1)>); auto v2 = std::forward_list{1, 2, 3, 4, 5}; auto ev2 {v2 | std::views::enumerate}; static_assert(not std::ranges::sized_range<decltype(v2)>); // auto size = ev2.size(); // エラー: v2はsized rangeではない assert(std::ranges::distance(v2) == 5); // OK、distanceはsized rangeを必要としない // ただしここではO(N)の計算量を持つ }
関連項目
|
(C++20)
|
範囲のサイズに等しい整数を返す
(カスタマイゼーションポイントオブジェクト) |
|
(C++20)
|
範囲のサイズに等しい符号付き整数を返す
(カスタマイゼーションポイントオブジェクト) |