Да, это потокобезопасный, поскольку внутренние векторы модифицируются только одним потоком.Вы можете опустить производную schedule(dynamic)
и все равно сохранить.
Это станет немного понятнее, если вы избавитесь от внутреннего цикла, используя std::iota
.
vector<vector<int> > global_vec(10, vector<int>({}));
#pragma omp parallel for schedule(dynamic)
for(int i = 0; i < 10; i++)
{
global_vec[i].resize(i * 5) ;
std::iota(global_vec[i].begin(), global_vec[i].end(), 0);
}
Ps.Если ваш внешний вектор имеет фиксированный размер, рассмотрите возможность использования std::array<vector<int>, 10>
.