我正在用c ++开发电梯模拟器。我有一个 passenger 类,该程序创建该类的“随机”实例,该实例在建筑物内具有不同的起始楼层和不同的目的地,然后将它们存储在矢量中
vector<passenger> passengers;
我正在研究建筑物中4部电梯的调度算法。但是,由于该算法会比较建筑物中的所有4个电梯,因此可能无法立即为乘客分配电梯(即,不可用的IDLE电梯或具有与乘客相同方向的足够空间的电梯)
问题 :
我想同时将算法不断应用于矢量乘客的所有元素,并且不能使用传统的for循环来实现,因为它可能会在途中被卡在可以分配电梯的乘客实例卡住等待。
有人知道是否有办法吗?
谢谢。
答案 0 :(得分:1)
您可以将std::for_each与并行的ExecutionPolicy一起使用。
请注意,如果您需要同步对元素的访问,则并行执行的结果可能比串行执行的结果慢。