Closed
Description
How to use blocked_range
with set
and map
?
set<size_t> uset1;
size_t result = parallel_reduce(
blocked_range<set<size_t>::const_iterator>(uset1.begin(), uset1.end()), 1 /* Identity for Multiplication */,
[&](tbb::blocked_range<set<size_t>::const_iterator> const &r, size_t running_total)
{
for (set<size_t>::const_iterator it = r.begin(); it != r.end(); it++)
running_total = ((running_total % modulo) * (*it % modulo)) % modulo;
return running_total;
},
[&modulo](size_t x, size_t y) -> size_t
{
return ((x % modulo) * (y % modulo) % modulo);
});
Errors:
Console.cpp:2175:41: error: template argument 1 is invalid
2175 | blocked_range<set<size_t>::const_iterator>(uset1.begin(), uset1.end()), 1 /* Identity for Multiplication */,
| ^
Console.cpp:2176:50: error: template argument 1 is invalid
2176 | [&](tbb::blocked_range<set<size_t>::const_iterator> const &r, size_t running_total)
| ^
Console.cpp:2176:51: error: expected identifier before ‘::’ token
2176 | [&](tbb::blocked_range<set<size_t>::const_iterator> const &r, size_t running_total)
| ^~
Console.cpp:2176:67: error: expected unqualified-id before ‘>’ token
2176 | [&](tbb::blocked_range<set<size_t>::const_iterator> const &r, size_t running_total)
| ^
Console.cpp:2176:67: error: expected ‘)’ before ‘>’ token
2176 | [&](tbb::blocked_range<set<size_t>::const_iterator> const &r, size_t running_total)
| ~ ^
| )