Namespaces
Variants

std:: srand

From cppreference.net
Definiert in Header <cstdlib>
void srand ( unsigned seed ) ;

Initialisiert den Pseudozufallszahlengenerator, der von std::rand() verwendet wird, mit dem Wert seed .

Wenn std::rand() verwendet wird, bevor irgendwelche Aufrufe von srand() erfolgen, verhält sich std::rand() so, als wäre es mit srand ( 1 ) initialisiert worden.

Jedes Mal, wenn std::rand() mit demselben seed initialisiert wird, muss es dieselbe Wertefolge erzeugen.

srand() ist nicht garantiert threadsicher.

Inhaltsverzeichnis

Parameter

seed - der Seed-Wert

Rückgabewert

(keine)

Hinweise

Allgemein gesprochen sollte der Pseudozufallszahlengenerator nur einmal initialisiert werden, bevor irgendwelche Aufrufe von rand() erfolgen, und zwar zu Beginn des Programms. Er sollte nicht wiederholt initialisiert oder jedes Mal neu initialisiert werden, wenn Sie eine neue Reihe von Pseudozufallszahlen generieren möchten.

Standardpraxis ist es, das Ergebnis eines Aufrufs von std:: time ( 0 ) als Seed zu verwenden. Allerdings gibt std::time einen std:: time_t -Wert zurück, und std:: time_t ist nicht garantiert ein integraler Typ. In der Praxis definiert jedoch jede bedeutende Implementierung std:: time_t als integralen Typ, und dies ist auch, was POSIX vorschreibt.

Beispiel

#include <cstdlib>
#include <ctime>
#include <iostream>
int main() 
{
    std::srand(std::time(0)); // use current time as seed for random generator
    std::cout << "Random value on [0, " << RAND_MAX << "]: " << std::rand() << '\n';
}

Mögliche Ausgabe:

Random value on [0, 2147483647]: 1373858591

Siehe auch

erzeugt eine Pseudo-Zufallszahl
(Funktion)
maximaler möglicher Wert, erzeugt durch std::rand
(Makrokonstante)
initialisiert die pro-Thread-Zufallsengine neu
(Funktion)