生成随机数量的队列

Generate random number of queues

出于好奇,有人如何创建随机数量的队列?

我的当前项目中有这样一个构造函数:

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
}

要创建随机数量为 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>);
}

使用唯一指针或智能指针留作 reader 的练习。

编辑 1:
对于实际队列,将 std::vector 替换为 std::deque