//分配小車 AGVScheduler scheduler; scheduler.assign_task_to_agv(tasks, agvs);//開始分配任務 // 遍历所有 AGV,更新位置和状态 for (int i = 0; i < agvs.size(); i++) { if (agvs[i].available_ == 0 && agvs[i].run_== 0 ) { moveAgvs(i); std:: cout << "agv.id:"<< agvs[i].id_ << "___task.id :" << agvs[i].task_id << endl; } },添加代碼 :遍歷所有的task,只要所有task的completed的值不全為2,則循環這個函數
时间: 2024-03-02 14:52:44 浏览: 65
如果您的要求是遍历所有任务,只要所有任务的completed的值不全为2,就循环这个函数,可以尝试以下代码:
```
while (true) {
bool all_completed = true;
for (int i = 0; i < tasks.size(); i++) {
if (tasks[i].completed != 2) {
all_completed = false;
break;
}
}
if (all_completed) {
break;
}
AGVScheduler scheduler;
scheduler.assign_task_to_agv(tasks, agvs);//開始分配任務
for (int i = 0; i < agvs.size(); i++) {
if (agvs[i].available_ == 0 && agvs[i].run_== 0 ) {
moveAgvs(i);
std::cout << "agv.id:" << agvs[i].id_ << "___task.id :" << agvs[i].task_id << endl;
}
}
}
```
这段代码会无限循环,直到所有任务的completed的值都为2为止。在每次循环中,会先检查所有任务的completed的值是否都为2,如果是就跳出循环;否则就继续进行任务分配和 AGV 的更新操作。
阅读全文