如果我有这段代码:
std::vector<std::vector<double>> a;
std::vector<double> b;
// init a,b....
std::vector<double> c;
parallel_for_each (a.begin(); a.end; [&c, &b] (std::vector<double>& aux) {
c.push_back(foo(b, aux));
});
在向量中添加类似的元素是否可以线程安全?
答案 0 :(得分:5)
不,std::vector
不是线程安全的。您必须提供同步。
答案 1 :(得分:3)
parallel_for_each来自哪里?如果它来自Microsoft的并发库,只需使用concurrent_vector。