我是 C++ 新手,我只用了几个小时。
我想创建一个函数,用 1 到 255 之间的随机值填充数组/向量(用于随机 IP 地址)。
我创建了这个:
vector<int> gen_ip_tuple(){
int sh_rand;
vector<int> vect_tuple;
srand(time(NULL)); // initialize random seed
for (int i = 0; i < 4; i++){
sh_rand = rand() % 255 + 1; // between 1 to 255
cout << sh_rand << endl;
vect_tuple.push_back(sh_rand);
}
return vect_tuple;
}
如果它被调用一次,它会很好地工作。
但是如果我多次调用这个函数,每次都会产生相同的四元组结果。
我不明白,因为我srand(time(NULL))
曾经有一个随机种子。
这个种子是在函数中设置的,所以每次都必须是新的。
总之:
每次程序重新运行时,4 元组都是随机的(与上一次运行不同)
first run = {67,127,115,45} second run ={157,142,16,93}
每次调用该函数时,都会产生相同的结果。
first call = {157,142,16,93} second call ={157,142,16,93} ....
你有什么主意吗?