#include <tbb/concurrent_vector.h>
#include <tbb/parallel_for.h>
#include <random>
#define N 1000000
int main()
{
    tbb::concurrent_vector<u_int32_t> v(N);
    std::mt19937 mt;
    std::uniform_int_distribution<u_int32_t> dist(0,499);
    tbb::parallel_for( tbb::blocked_range<tbb::concurrent_vector<u_int32_t>>(v.begin(),v.end()),[&]{return dist(mt);});
    return(0);
}
我不明白为什么这不起作用,据我了解,此接口parallel_for应包括容器的起点、终点和应在循环的每次迭代中执行的步骤的大小,最后一个参数它将被执行的函数。
现在tbb::blocked_range它用于拆分容器(对吗?),所以在这种情况下它应该很有用,我无法让它工作,我不明白为什么这不能以更简单的方式与迭代器一起工作。 ..