我是菜鸟,这是我的第一篇文章。
关于'&'字符,我理解它作为参考,地址和逻辑运算符的一般用法,...
然而,当我试图让增强随机数生成器功能起作用时,我注意到'&'的另一种用法我以前从未见过的人物......也没有关于它的明确文件(至少在网上)。
请注意'&'来自参数mt19937&。
的END OFboost::variate_generator<boost::mt19937&, boost::uniform_int<> > die(gen, dist);
这是什么?我假设它在某种程度上被用作参考,但如果我试图把'&amp;'在参数的前面,编译器说这是不可接受的。
任何解释都将不胜感激。
NK。
答案 0 :(得分:7)
变量之前的&符号为您提供该变量的地址
int a = 3;
std::cout << &a << std::endl; // 0x12345678 or similar
类型后的&符号使其成为引用类型
int& b = a;
std::cout << b << std::endl; // 3
a = 4;
std::cout << b << std::endl; // 4
boost::mt19937
是一种类型,因此boost::mt19937&
是boost::mt19937
的引用类型。在(&boost::mt19937
)之前放置&符号是没有意义的,因为你无法获得类型的地址。