2012-05-31 78 views
1

有人能告訴我使用boost的正態分佈這段代碼是怎麼回事?Boost函數簽名

boost::mt19937 rng; // A random number generator 
boost::normal_distribution<> nd(3.0, 1.0); // mean 3, sigma 1 
// Attach the distribution to the random number generator to get a function 
// that returns normally distributed variables. 
boost::variate_generator<boost::mt19937&,boost::normal_distribution<> > var_nor(rng, nd); 
// Use it. But why is function signature different? 
double x = var_nor(); 

我很困惑,var_nor發生了什麼,它的兩個函數簽名。 謝謝 皮特

回答

5

var_nor是不是一個函數,它是一個對象。

第一行創建它(將rng和distribution作爲參數傳遞給構造函數)。
第二行稱其爲operator()成員。

+0

啊......當然!謝謝Mat – Pete855217

+0

在()中是這個對象的一個​​重載操作符。 – Pete855217