使用 mt19937 的静脉错误
Veins error using mt19937
我正在尝试使用 mt19937 在 Veins 上为我的 node/vehicle class 生成(好的)随机数。当我为每辆车使用一个 mt19937 时,他工作,但是当我设置为静态时(一个 mt19937 用于所有汽车)他不工作
static mt19937 mt;
使用mt时出现一处错误:
uniform_int_distribution <int> unif_dist(1, 100);
...
return unif_dist(mt);
错误:
Error in module (cModule) vehDist_rsu (id=48) during network
setup: Class "Veins::ObstacleControl" not found -- perhaps its code
was not linked in, or the class wasn't registered with
Register_Class(), or in the case of modules and channels, with
Define_Module()/Define_Channel().
Error during network cleanup: Model error: ASSERT: condition
vect[i]==NULL false in function deleteNetwork, csimulation.cc line
437.
我尝试用 1 and 解决,但没有成功。
我将我的 Veins 更新为 Veins 4.4,在 BaseWaveApplLayer.h 中将 mt19937 设置为静态:
static mt19937 mt;
在我的车里定义他class:
mt19937 BaseWaveApplLayer::mt_veh;
并在classBaseWaveApplLayer中使用他:
uniform_int_distribution <int> dist(0, 100);
int valueSelected = dist(mt_veh);
感谢大家的帮助:)!
我正在尝试使用 mt19937 在 Veins 上为我的 node/vehicle class 生成(好的)随机数。当我为每辆车使用一个 mt19937 时,他工作,但是当我设置为静态时(一个 mt19937 用于所有汽车)他不工作
static mt19937 mt;
使用mt时出现一处错误:
uniform_int_distribution <int> unif_dist(1, 100);
...
return unif_dist(mt);
错误:
Error in module (cModule) vehDist_rsu (id=48) during network setup: Class "Veins::ObstacleControl" not found -- perhaps its code was not linked in, or the class wasn't registered with Register_Class(), or in the case of modules and channels, with Define_Module()/Define_Channel().
Error during network cleanup: Model error: ASSERT: condition vect[i]==NULL false in function deleteNetwork, csimulation.cc line 437.
我尝试用 1 and
我将我的 Veins 更新为 Veins 4.4,在 BaseWaveApplLayer.h 中将 mt19937 设置为静态:
static mt19937 mt;
在我的车里定义他class:
mt19937 BaseWaveApplLayer::mt_veh;
并在classBaseWaveApplLayer中使用他:
uniform_int_distribution <int> dist(0, 100);
int valueSelected = dist(mt_veh);
感谢大家的帮助:)!