我的问题是,如果线程在不同的内部向量上运行,是否可以从内部向量中删除元素,如vector<vector<Myclass> a; a[i].erease(a[i].begin());
?
我知道,为了一个向量而不是线程保存,但在这种情况下,每个线程都有自己的向量。
答案 0 :(得分:2)
删除矢量时删除矢量中的元素不线程安全。
但是,如果多个线程可以访问相同的数据,则线程安全才有意义。对于单线程程序,或者如果每个线程只处理自己的数据,即使线程不安全操作 也是安全的。
所以答案是:它不是线程安全的,但如果只能通过一个线程访问该向量,则它是无害的。