有没有一种方法可以在C ++中并行遍历向量的所有元素?

时间:2019-04-13 11:46:06

标签: c++

我正在用c ++开发电梯模拟器。我有一个 passenger 类,该程序创建该类的“随机”实例,该实例在建筑物内具有不同的起始楼层和不同的目的地,然后将它们存储在矢量中

vector<passenger> passengers;

我正在研究建筑物中4部电梯的调度算法。但是,由于该算法会比较建筑物中的所有4个电梯,因此可能无法立即为乘客分配电梯(即,不可用的IDLE电梯或具有与乘客相同方向的足够空间的电梯)

问题

我想同时将算法不断应用于矢量乘客的所有元素,并且不能使用传统的for循环来实现,因为它可能会在途中被卡在可以分配电梯的乘客实例卡住等待。

有人知道是否有办法吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以将std::for_each与并行的ExecutionPolicy一起使用。

请注意,如果您需要同步对元素的访问,则并行执行的结果可能比串行执行的结果