push_back , begin , end sont décrits comme sûrs simultanés dans https://docs.microsoft.com/en-us/cpp/parallel/concrt/reference/concurrent-vector-class?view=vs-2019#push_back
Cependant, le code ci-dessous s'affirme. Probablement parce que l'élément est ajouté mais pas encore initialisé.
struct MyData
   {
   explicit MyData()
      {
      memset(arr, 0xA5, sizeof arr);
      }
   std::uint8_t arr[1024];
   };
struct MyVec
   {
   concurrency::concurrent_vector<MyData> v;
   };
auto vector_pushback(MyVec &vec) -> void
   {
   vec.v.push_back(MyData{});
   }
auto vector_loop(MyVec &vec) -> void
   {
   MyData myData;
   for (auto it = vec.v.begin(); it != vec.v.end(); ++it)
      {
      auto res = memcmp(&(it->arr), &(myData.arr), sizeof myData.arr);
      assert(res == 0);
      }
   }
int main()
{
   auto vec = MyVec{};
   auto th_vec = std::vector<std::thread>{};
   for (int i = 0; i < 1000; ++i)
      {
      th_vec.emplace_back(vector_pushback, std::ref(vec));
      th_vec.emplace_back(vector_loop, std::ref(vec));
      }
   for(auto &th : th_vec)
      th.join();
    return 0;
}