最終更新日時(UTC):
が更新

履歴 編集

concept
<ranges>

std::ranges::random_access_range(C++20)

namespace std::ranges {
  template<class T>
  concept random_access_range = bidirectional_range<T> && random_access_iterator<iterator_t<T>>;
}

概要

random_access_rangeは、イテレータがrandom_access_iteratorであるRangeを表すコンセプトである。

モデル

Trandom_access_rangeのモデルとなるのは、Tbidirectional_rangeのモデルであり、かつそのイテレータがrandom_access_iteratorのモデルである場合である。

#include <ranges>
#include <list>
#include <set>
#include <vector>

int main()
{
  // vectorはrandom_access_range
  static_assert(std::ranges::random_access_range<std::vector<int>>);

  // listはrandom_access_rangeではない
  static_assert(!std::ranges::random_access_range<std::list<int>>);

  // setはrandom_access_rangeではない
  static_assert(!std::ranges::random_access_range<std::set<int>>);
}

出力

バージョン

言語

  • C++20

処理系

参照