concurrent_vector は連続したメモリ ブロックを使用しないため、これが問題ないかどうかを確認したいと思います。
concurrency::concurrent_vector<Something> my_array;
//Populate 'm_array' somehow perhaps involving multiple threads
const auto iter = std::find_if (my_array.begin (), m_array.end (), SomeLambda);
const int index = iter - my_array.begin ();
私の質問: 'index' が (concurrect_vector::operator[] メソッドを介して) 見つけたばかりの要素にインデックスを付けない場合はありますか? 別のスレッドが理論的に要素を変更できることを認識しています-それは私の質問ではありません。
これでうまくいくはずだと思いますが、私は生のポインターを扱うことに慣れているので、(うっかり微妙なバグの原因を追加しないように) 質問したいと思います。