Skip to content

Latest commit

 

History

History
73 lines (52 loc) · 1.52 KB

begin.md

File metadata and controls

73 lines (52 loc) · 1.52 KB

begin

  • ranges[meta header]
  • std::ranges[meta namespace]
  • as_const_view[meta class]
  • function[meta id-type]
  • cpp23[meta cpp]
constexpr auto begin() requires (!simple-view<V>);      // (1)
constexpr auto begin() const requires range<const V>;   // (2)
  • simple-view[link /reference/ranges/simple-view.md]
  • range[link /reference/ranges/range.md]

概要

viewの先頭要素を指すイテレータを取得する。

戻り値

入力viewV)のオブジェクトをbase_というメンバに保持するとして、(1)(2)どちらも

return ranges::cbegin(base_);
  • cbegin[link /reference/ranges/cbegin.md]

as_const_viewviews::as_constから生成している場合、ここで得られるイテレータは常にbasic_const_iteratorの特殊化となる。

#include <ranges>
#include <vector>
#include <iostream>

int main() {
  std::vector<int> vec = {1, 2, 3, 4, 5};

  std::ranges::as_const_view acv{vec};

  auto it = acv.begin();

  std::cout << *it << '\n';

  ++it;
  std::cout << *it << '\n';

  // 書き換え不可
  //*it = 0;
}
  • begin[color ff0000]

出力

1
2

バージョン

言語

  • C++23

処理系

参照