System::Random Klasse

Random class

Stellt einen Pseudo-Zufallszahlengenerator dar. Objekte dieser Klasse sollten nur mit der Funktion System::MakeObject() alloziert werden. Erzeugen Sie niemals eine Instanz dieses Typs auf dem Stack oder mit dem Operator new, da dies zu Laufzeitfehlern und/oder Assertion-Fehlern führt. Wickeln Sie diese Klasse immer in einen System::SmartPtr Zeiger ein und verwenden Sie diesen Zeiger, um ihn als Argument an Funktionen zu übergeben.

class Random : public System::Object

Methoden

MethodeBeschreibung
IsNull() constGibt immer false zurück.
virtual Next()Gibt eine nichtnegative Zufallszahl zurück, die kleiner als der maximale int32-Wert ist.
virtual Next(int32_t)Gibt eine nichtnegative Zufallszahl zurück, die kleiner als das angegebene Maximum ist.
virtual Next(int32_t, int32_t)Gibt eine Zufallszahl innerhalb des angegebenen Bereichs zurück.
virtual NextBytes(const ArrayPtr<uint8_t>&)Füllt die Elemente des angegebenen Byte-Arrays mit Zufallszahlen.
virtual NextDouble()Gibt eine Zufallszahl zwischen 0,0 und 1,0 zurück.
Random()Initialisiert eine neue Instanz unter Verwendung eines zeitabhängigen Standard-Seed-Werts.
Random(int32_t)Initialisiert eine neue Instanz der System.Random Klasse unter Verwendung des angegebenen Seed-Werts.

Hinweise

#include "system/random.h"
#include "system/smart_ptr.h"
#include <iostream>

int main()
{
  const auto rnd = System::MakeObject<System::Random>();

  // Erhalte eine zufällige Monatszahl und gib sie aus.
  auto monthNumber = rnd->Next(1, 13);
  std::cout << "Month: " << monthNumber << std::endl;

  // Fülle das Array mit Zufallszahlen.
  auto arr = System::MakeObject<System::Array<uint8_t>>(12);
  rnd->NextBytes(arr);

  // Gib das Array aus.
  for (auto i = 0; i < arr->get_Length(); ++i)
  {
    std::cout << static_cast<int>(arr[i]) << ' ';
  }
  std::cout << std::endl;

  return 0;
}
/*
This code example produces the following output:
Month: 4
177 213 89 240 68 182 18 96 109 131 1 78
*/

Siehe auch