我知道之前有过几个类似的问题。但是没有一个得到广泛的认可,指针的向量对我来说仍然很混乱。
这是代码:
想象一下,我们有一个:
vector<member*> vector_member;
for (int i = 0; i < n; i++){
member* mem = new member(i); //constructor
mem->init(); //This function use a random number generator to give the member some randomness
vector_member.push_back(mem);
}
执行此代码后,我发现vector_member [i]的所有随机数都是一样的!
任何专家都对此有任何想法?
答案 0 :(得分:1)
我必须看到你的init
方法,但我的猜测是你的随机函数正在使用种子值,比如当前时间(例如,自纪元以来的毫秒数)来初始化自己,以及你的代码执行速度非常快,以至于调用之间的时间没有变化,所以返回相同的随机数。