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

FreeBSD Manual Pages

  
 
  

home | help
std::experimental::shuffle(3) C++ Standard Libarystd::experimental::shuffle(3)

NAME
       std::experimental::shuffle - std::experimental::shuffle

Synopsis
	  Defined in header <experimental/algorithm>
	  template<  class  RandomIt >			    (library fundamen-
       tals TS v2)
	  void shuffle(	RandomIt first,	RandomIt last );

	  Reorders the elements	in the given range  [first,  last)  such  that
       each possible
	  permutation  of  those elements has equal probability	of appearance,
       using the
	  per-thread random number engine as the random	number generator.

Parameters
	  first, last		-	    the	range of elements  to  shuffle
       randomly
	  -
	  RandomIt must	meet the requirements of ValueSwappable	and
	  LegacyRandomAccessIterator.

Return value
	  (none)

Complexity
	  Linear in the	distance between first and last.

Example
       // Run this code

	#include <experimental/algorithm>
	#include <iostream>
	#include <string>

	int main()
	{
	    std::string	sample{"ABCDEF"};

	    for	(int i = 0; i != 4; ++i)
	    {
		std::experimental::shuffle(sample.begin(), sample.end());
		std::cout << sample << '\n';
	    }
	}

Possible output:
	DACBFE
	CDFBAE
	BDCAFE
	BAFCED

See also
	  random_shuffle
	  shuffle	 randomly re-orders elements in	a range
	  (until C++17)	 (function template)
	  (C++11)

http://cppreference.com		  2024.06.10	 std::experimental::shuffle(3)

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

home | help