0
我想要一個生成隨機數在下限和上限之間的模板化類(兩個限制都可以是負數)。這是我到目前爲止:C++模板類生成隨機int和雙打
template <typename T>
T RandomGenerator<T>::generate(T lowerLimit, T upperLimit)
{
static bool initialized = initialize();
return double(rand()) * (upperLimit - lowerLimit)/RAND_MAX + lowerLimit;
}
template <typename T>
bool RandomGenerator<T>::initialize()
{
srand(time(NULL));
}
int iVal = RandomGenerator<int>::generate(1, 10); //Generate integers between (and including) 1 and 10.
double dVal = RandomGenerator<double>::generate(-1, 1); //Generate doubles between (and including) -1 and 1.
這正確地生成double值,但整數關閉。有誰知道如何編寫一個通用的解決方案,用於整數和雙精度?我不希望有一個不同的函數用於整數和雙精度。
C++ 2011爲您提供了'std :: random'模板。您需要GCC 4.7或4.8 – 2013-03-16 11:25:36
這些值如何關閉?它們是否被截斷爲零? – JSQuareD 2013-03-16 11:26:17
我不想使用新的C++標準。 – goocreations 2013-03-16 11:30:53