由于 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[] 方法)?我意识到另一个线程理论上可以修改元素 - 这不是我的问题。
我想这应该可行,但是因为我习惯于使用原始指针,所以我想问一下(这样我就不会无意中添加细微错误的来源)。