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 fundamentals
       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		  2022.07.31	 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.0>

home | help