这段代码是一个简单的餐厅排队模拟程序。下面是对注释的解释:
- 创建一个变量
n
并读取输入,表示顾客的数量。 - 创建一个
vector<Customer>
类型的对象customers
,长度为n
,用于存储顾客的信息。 - 使用循环遍历输入,为每个顾客分配一个ID,并读取其到达时间和用餐时间。
- 创建一个长度为4的
vector<queue<Customer>>
类型的对象tables
,表示四张桌子。 - 初始化总等待时间
totalWaitingTime
为0。 - 使用循环遍历所有顾客:
a) 初始化变量
table
为-1,表示未找到可用桌子。 b) 在四张桌子中搜索空闲或上一位顾客离开后可以使用的桌子。 c) 如果找到了可用桌子,则将该顾客加入该桌子队列中。 d) 如果没有找到可用桌子,则在四张桌子中找到等待时间最短的一张桌子:- 计算当前最短等待时间对应的桌子索引和结束时间; - 计算当前顾客需要等待的时间; - 更新总等待时间; - 更新该顾客到达时间,并将其加入相应的桌子队列中。
- 输出各个桌子上的顾客分配情况以及总等待时间。
- 计算平均等待时间,并输出。
该程序模拟了顾客在餐厅排队并选择桌子就座的过程,通过最短等待时间的策略进行安排。
内容由零声教学AI助手提供,问题来源于学员提问