Aşağıda verilen kodda, yerel ayarını ve küresel ayarlarını kullanarak aynı etkiyi veren bir bayrağı (veya aynı derecede basit bir şey) uygulamak istiyorum (bu iki farklı sayıyı üreterek) örnek) ve yerel ayarın diğer zamanlarda kullanılması (bu örnekte iki aynı sayıyı vermek).C++ 11 RNG'nin başlangıç durumu için yerel ve genel ayarlar arasında nasıl geçiş yapabilirim?
Açıkça "if" ve "geçiş" yapılarını başarılı olmadan denedim.
#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;
}
Lütfen, * nasıl çalıştığınızı gösterir misiniz? 'if' veya' switch'? –