Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::ranges...:stride_view(3) C++ Standard Libarystd::ranges...:stride_view(3)

NAME
       std::ranges::stride_view::stride_view				     -
       std::ranges::stride_view::stride_view

Synopsis
	  constexpr  explicit  stride_view(  V	 base,	 ranges::range_differ-
       ence_t<V>  (since C++23)
	  stride );

	  Constructs a stride_view initializing	the underlying data members:

	    * move construct the underlying view base_ with std::move(base),
	    * construct	the stride_ with stride.

	  If stride < 1	the behavior is	undefined.

Parameters
	  base	 - the source view
	  stride - the stride value

Example
       // Run this code

	#include <algorithm>
	#include <iostream>
	#include <iterator>
	#include <ranges>
	#include <string_view>

	void print(std::string_view rem, auto v, std::string_view term = "\n")
	{
	    std::cout << rem <<	": ";
	    std::ranges::copy(v, std::ostream_iterator<int>(std::cout, " "));
	    std::cout << term;
	};

	int main()
	{
	    auto source	= std::views::iota(1, 10);
	    print("source", source);

	    for	(int stride_value : std::views::iota(1,	6))
	    {
		auto strided_view = std::views::stride(source, stride_value);

		print("stride",	std::views::single(stride_value), "-> ");
		print("result",	strided_view);
	    }
	}

Output:
	source:	1 2 3 4	5 6 7 8	9
	stride:	1 -> result: 1 2 3 4 5 6 7 8 9
	stride:	2 -> result: 1 3 5 7 9
	stride:	3 -> result: 1 4 7
	stride:	4 -> result: 1 5 9
	stride:	5 -> result: 1 6

http://cppreference.com		  2024.06.10	 std::ranges...:stride_view(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ranges::stride_view::stride_view&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help