openmpを使用してstd::setを介したループをマルチスレッド化しようとしています。次のコードを書くと-
#pragma omp parallel for
for (std::set<A>::const_iterator i = s.begin(); i != s.end(); ++i) {
const A a = *i;
operate(a);
}
このエラーが発生します:
error: invalid type for iteration variable 'i'
error: invalid controlling predicate
error: invalid increment expression.
openmpを使用してstdコンテナーを反復処理する別の正しい方法はありますか?toとイテレータまたはループ本体で使用int i
および反復
できることはわかっていますが、これはあまりきれいに見えません。0
s.size()
operator[]