1
我有一個類,它存儲和處理T
類型的數據,它只是一個模板類名。C++中是否有任何類型無關的隨機生成器?
template<class T=float>
class myClass {
public:
//...
};
其中一個函數,我想生成隨機數,給定的最大絕對值。
我開始:
T randvalue = ((T)rand()/RAND_MAX)*MAX_ABS
它與float和雙。但我想讓它與複雜的數字一起工作。如果一個double
被鑄造爲complex<double>
,那麼它將只有一個真實的部分。虛部保持爲零,所以我現在不能用虛部生成複數。
我不要求代碼,只是給我提示,如何開始。我想了解,我怎樣才能創建一個模板化的隨機生成器。
類T
是一種類型的,其中abs
,+
,-
,*
,/
限定。
只要使用兩個隨機數,如果該類型複雜。順便說一句。 C++有模板化的隨機數生成器,但我相信,它們只能使用fforbuiltin類型。 – MikeMB
我想在沒有分支的情況下實現它,如果可能的話。複雜的只是一個例子,爲什麼我的代碼在任何情況下都不起作用。 –
你不需要分支 - 你可以專門爲複雜的數字模板。你當然可以將隨機位寫入你的變量的內存地址,但我不確定,如果這總是會導致leagle值。 – MikeMB