正在删除vector <vector <myclass>&gt;线程保存?

时间:2015-11-18 08:58:07

标签: c++ vector thread-safety openmp

我的问题是,如果线程在不同的内部向量上运行,是否可以从内部向量中删除元素,如vector<vector<Myclass> a; a[i].erease(a[i].begin());? 我知道,为了一个向量而不是线程保存,但在这种情况下,每个线程都有自己的向量。

1 个答案:

答案 0 :(得分:2)

删除矢量时删除矢量中的元素线程安全。

但是,如果多个线程可以访问相同的数据,则线程安全才有意义。对于单线程程序,或者如果每个线程只处理自己的数据,即使线程不安全操作 也是安全的。

所以答案是:它不是线程安全的,但如果只能通过一个线程访问该向量,则它是无害的。