W kodzie podanym poniżej, chciałbym wdrożyć flagę (lub coś równie prosty), który ma taki sam efekt jak zakomentowanie lokalnego Ustawianie i używając globalnego ustawienie kilku razy (plonowania dwóch różnych numerów w tym przykład) i za pomocą lokalnego ustawienia w innym czasie (w tym przykładzie otrzymujemy dwie identyczne liczby).Jak przełączać między lokalnymi i globalnymi ustawieniami dla początkowego stanu C++ 11 RNG?
Próbowałem oczywistych struktur "jeśli" i "przełączania" bez powodzenia.
#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;
}
Czy możesz pokazać, * jak * próbowałeś, np. 'if' lub' switch'? –