Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::ranges::split_view<V,Pattern>::iterator

      From cppreference.com
      <cpp‎ |ranges‎ |split view
       
       
      Ranges library
      Range adaptors
       
       
      class/*iterator*/;
      (since C++20)
      (exposition only*)

      The return type ofsplit_view::begin. This is aforward_iterator, so it is expected thatV models at leastforward_range.

      Contents

      [edit]Member types

      Member type Definition
      iterator_conceptstd::forward_iterator_tag
      iterator_categorystd::input_iterator_tag
      value_typeranges::subrange<ranges::iterator_t<V>>
      difference_typeranges::range_difference_t<V>

      [edit]Data members

      Member Description
      ranges::split_view<V, Pattern>*parent_(private) a pointer to the parentsplit_view object
      (exposition-only member object*)
      ranges::iterator_t<V>cur_(private) an iterator into the underlyingview that points to the begin of a current subrange
      (exposition-only member object*)
      ranges::subrange<ranges::iterator_t<V>>next_(private) a subrange to the position of the pattern next to the current subrange
      (exposition-only member object*)
      booltrailing_empty_(private) a flag that indicates whether an empty trailing subrange (if any) was reached
      (exposition-only member object*)

      [edit]Member functions

      (constructor)
      (C++20)
      constructs an iterator
      (public member function)
      base
      (C++20)
      returns the underlying iterator
      (public member function)
      operator*
      (C++20)
      returns the current subrange
      (public member function)
      operator++operator++(int)
      (C++20)
      advances the iterator
      (public member function)

      std::ranges::split_view::iterator::iterator

      /*iterator*/()=default;
      (1)(since C++20)
      constexpr/*iterator*/( split_view& parent,ranges::iterator_t<V> current,
                             ranges::subrange<ranges::iterator_t<V>> next);
      (2)(since C++20)
      1) Value-initializes non-static data members with their default member initializers, that is
      2) Initializes non-static data members:

      std::ranges::split_view::iterator::base

      constexprconstranges::iterator_t<V> base()const;
      (since C++20)

      Equivalent toreturn cur_;.

      std::ranges::split_view::iterator::operator*

      constexpr value_type operator*()const;
      (since C++20)

      Equivalent toreturn{cur_, next_.begin()};.

      std::ranges::split_view::iterator::operator++

      constexpr/*iterator*/& operator++();
      (1)(since C++20)
      constexprvoid operator++(int);
      (2)(since C++20)
      1) Equivalent to
      cur_= next_.begin();

      if(cur_!=ranges::end(parent_->base_))
      {
         if(cur_= next_.end(); cur_==ranges::end(parent_->base_))
         {
              trailing_empty_=true;
              next_={cur_, cur_};
         }
         else
              next_= parent_->find_next(cur_);
      }
      else
          trailing_empty_=false;

      return*this;
      2) Equivalent toauto tmp=*this;++*this;return tmp;.

      [edit]Non-member functions

      operator==
      (C++20)
      compares the underlying iterators
      (function)

      operator==(std::ranges::split_view::iterator, std::ranges::split_view::iterator)

      friendconstexprbool operator==(const/*iterator*/& x,const/*iterator*/& y);
      (since C++20)

      Equivalent toreturn x.cur_== y.cur_ and x.trailing_empty_== y.trailing_empty_;.

      The!= operator issynthesized fromoperator==.

      This function is not visible to ordinaryunqualified orqualified lookup, and can only be found byargument-dependent lookup whenstd::ranges::split_view::iterator is an associated class of the arguments.

      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/split_view/iterator&oldid=179947"

      [8]ページ先頭

      ©2009-2025 Movatter.jp