并行迭代器

cls*_*udt 5 c++ iteration iterator openmp

我正在设计一个C++数据结构(用于图形),它将由并行代码(使用OpenMP)使用.

假设我想要一个能够迭代所有元素(节点)的方法.当然,这个迭代将被并行化.

是否可以为此目的使用迭代器?迭代器应该如何实现并行访问?在这种情况下,您是建议支持还是反对使用迭代器?

Fre*_*Foo 6

OpenMP并行循环不能很好地与迭代器一起使用.您需要operator[]在图类上实现索引机制(采用积分参数).

如果您确实想使用OpenMP 3.0迭代器支持,请确保您具有随机访问迭代器.将其实现为指向节点或边缘的指针是最简单的选择.