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

FreeBSD Manual Pages

  
 
  

home | help
std::srand(3)		      C++ Standard Libary		 std::srand(3)

NAME
       std::srand - std::srand

Synopsis
	  Defined in header <cstdlib>
	  void srand( unsigned seed );

	  Seeds	 the  pseudo-random  number generator used by std::rand() with
       the value seed.

	  If std::rand() is used before	any calls to srand(), std::rand()  be-
       haves as	if it was
	  seeded with srand(1).

	  Each	time std::rand() is seeded with	the same seed, it must produce
       the same
	  sequence of values.

	  srand() is not guaranteed to be thread-safe.

Parameters
	  seed - the seed value

Return value
	  (none)

Notes
	  Generally speaking, the pseudo-random	number generator  should  only
       be seeded once,
	  before  any  calls to	rand(),	at the start of	the program. It	should
       not be repeatedly
	  seeded, or reseeded every time you wish to generate a	new  batch  of
       pseudo-random
	  numbers.

	  Standard  practice is	to use the result of a call to std::time(0) as
       the seed.
	  However, std::time returns a std::time_t value, and  std::time_t  is
       not guaranteed to
	  be an	integral type. In practice, though, every major	implementation
       defines
	  std::time_t  to be an	integral type, and this	is also	what POSIX re-
       quires.

Example
       // Run this code

	#include <cstdlib>
	#include <iostream>
	#include <ctime>

	int main()
	{
	    std::srand(std::time(0)); //use current time as  seed  for	random
       generator
	    int	random_variable	= std::rand();
	    std::cout << "Random value on [0 " << RAND_MAX << "]: "
		      << random_variable << '\n';
	}

Possible output:
	Random value on	[0 2147483647]:	1373858591

See also
	  rand	   generates a pseudo-random number
		   (function)
	  RAND_MAX maximum possible value generated by std::rand
		   (macro constant)
	  reseed   reseeds the per-thread random engine
		   (function)

http://cppreference.com		  2022.07.31			 std::srand(3)

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

home | help