出于好奇,有人如何创建随机数的队列?
我的当前项目中有一个类似的构造函数:
public:
Passenger<NODETYPE> *super_express;
Passenger<NODETYPE> *express_line1;
Passenger<NODETYPE> *express_line2;
Passenger<NODETYPE> *regular_line;
Checkout_Simulation() : super_express("Super Express Counter 01"),
express_line1("Express Line Counter 01"),
express_line2("Express Line Counter 02"),
regular_line("Regular Line Counter 01"),
clock_time(0), finish_time(0) {}
如何使用随机生成的数字创建随机数的regular_line队列?换句话说,随机发生器输出为5,它将产生5个regular_lines?
这是他们运行的地方:
template <typename NODETYPE>
void Checkout_Simulation<NODETYPE> :: run_sim() {
for(clock_time = 0; clock_time <total_time; clock_time++){
item_obj.item_purchase(number);
if (number < 15) {
super_express.check_new_arrival(clock_time, display_all);
// number = the value
super_express.number = number;
}
else if (number >15 && number <=20){
express_line1.check_new_arrival(clock_time, display_all);
express_line2.check_new_arrival(clock_time, display_all);
}
else {
regular_line.check_new_arrival(clock_time, display_all);
}
if (clock_time >= finish_time){
start_checkout();
}
}//end for loop
}
答案 0 :(得分:0)
要创建具有随机数量Passenger<NODETYPE>
的std :: vector,请执行以下操作:
首先,您将生成一个随机数 接下来,使用循环到随机数的限制。
srand(time(0); // Seed the random number generator.
const unsigned int quantity = rand() % 16 + 1;
std::vector<Passenger<NODETYPE> *> regular_line_queues;
for (unsigned int i = 0; i < quantity; ++i)
{
regular_line_queues.push_back(new Passenger<NODETYPE>);
}
使用唯一指针或智能指针留给读者练习。
编辑1:
对于实际的队列,请将std::vector
替换为std::deque
。