#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
ではコンテナを分割するために使用されているので(そうですか?)、この場合に役立つはずです. ..