home | help
std::ranges...ner-iterator(3)  C++ Standard Libary std::ranges...ner-iterator(3)

NAME
     std::ranges::chunk_view::inner-iterator  -  std::ranges::chunk_view::inner-
     iterator

Synopsis
	class /*inner-iterator*/  (since C++23)
				  (exposition only*)

	The return type of  chunk_view::outer-iterator::value_type::begin  if  V
     models
	input_range.

Member types
	Member type	 Definition
	iterator_concept std::input_iterator_tag
	difference_type  ranges::range_difference_t<V>
	value_type	 ranges::range_value_t<V>

	Data members

	Member object	  Definition
	parent_   (private)   A   pointer   to	 the  "parent  object"	of  type
     ranges::chunk_view*.
			  (exposition-only member object*)

Member functions
	constructor   constructs an iterator
	(C++23)       (public member function)
	operator=     move assigns another iterator
	(C++23)       (public member function)
	base	      returns an iterator to the current element
	(C++23)       (public member function)
	operator*     accesses the element
	(C++23)       (public member function)
	operator++    increments the iterator
	(C++23)       (public member function)

Non-member functions
	operator== compares the iterator with default sentinel
	(C++23)    (function)
	operator-  calculates the remained number of elements
	(C++23)    (function)
	iter_move  casts the result of dereferencing the underlying iterator  to
     its
	(C++23)    associated rvalue reference type
		   (function)
	iter_swap  swaps the objects pointed to by two underlying iterators
	(C++23)    (function)

Example
     // Run this code

      #include <iostream>
      #include <iterator>
      #include <ranges>
      #include <sstream>

      int main()
      {
	  auto letters = std::istringstream{"ABCDEFGHIJK"};

	  auto chunks = std::ranges::istream_view<char>(letters)
		      | std::views::chunk(4);

	  for (auto chunk : chunks)
	  {
	      //   chunk   is	an   object   of  type	chunk_view::outer_itera-
     tor::value_type
	      std::cout << '[';
	      for (auto  inner_iter  =	chunk.begin();	inner_iter  !=	std::de-
     fault_sentinel;
		   ++inner_iter)
		  std::cout << *inner_iter;
	      std::cout << "] ";
	  }
	  std::cout << '\n';
      }

Output:
      [ABCD] [EFGH] [IJK]

References
	  * C++23 standard (ISO/IEC 14882:2023):

	  * 26.7.28.5 Class chunk_view::inner-iterator [range.chunk.inner.iter]

See also
http://cppreference.com 	   2024.06.10	   std::ranges...ner-iterator(3)

home | help