In dem unten angegebenen Code möchte ich ein Flag (oder etwas Ähnliches) implementieren, das den gleichen Effekt hat wie die lokale lokale Einstellung und die globale Einstellung einige Male (dies ergibt zwei unterschiedliche Zahlen in diesem (Beispiel) und die lokale Einstellung zu anderen Zeiten (in diesem Beispiel ergeben sich zwei identische Zahlen).Wie wechsle ich zwischen lokalen und globalen Einstellungen für den Anfangszustand eines C++ 11 RNG?
Ich habe die offensichtlichen "wenn" und "Schalter" Strukturen ohne Erfolg versucht.
#include <iostream>
#include <random>
void print();
std::seed_seq seed{1, 2, 3, 4, 5};
std::mt19937 rng(seed); // *global* initial state
std::uniform_real_distribution<> rand01(0, 1);
int main()
{
print();
print();
return 0;
}
void print()
{
std::mt19937 rng(seed); // *local* initial state
std::cout << rand01(rng) << std::endl;
}
Können Sie bitte zeigen, * wie * Sie versucht haben, z. 'if' oder' switch'? –