#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
它用于拆分容器(对吗?),所以在这种情况下它应该很有用,我无法让它工作,我不明白为什么这不能以更简单的方式与迭代器一起工作。 ..