有人可以告诉我我的代码(C ++)有什么问题吗:
int main(){
unsigned seed = std::chrono::high_resolution_clock::now().time_since_epoch().count();
std::subtract_with_carry_engine<unsigned, 24, 10, 24> gen(seed);
std::tr1::normal_distribution<double> *imDensity;
imDensity = new std::tr1::normal_distribution<double>(0, 5);
double p = imDensity(gen) //here is the error
}
错误是“表观调用的括号前的表达式必须具有(指针到)函数类型”。我必须将随机数生成器传递给分布函数,但是我不知道在使用指针时该如何做。
最佳答案
imDensity
是一个指针,但实际上没有理由使用它,因为它更慢且更容易泄漏内存。但是,如果必须使用指针,请尝试(*imDensity)(gen)