operator [] は同時書き込みに対して安全ではないことが知られています:
concurrent_vector::operator[] 演算子
しかし、異なるスレッドが異なるベクトル位置に書き込むことを保証するとしたらどうなるでしょうか。このように(非常に単純化された例):
concurrent_vector<double> vec;
vec.resize(100);
parallel_for(0, 100, [&] (double ind)
{
vec[ind] = ind*ind;
}
同時に安全ですか?「そうでない」場合、なぜですか?
ありがとう