vector一个线程遍历,一个线程有erase/push操作,需要加锁同步吗,该怎么解决

vector<struct*>,一个线程遍历,一个线程有erase/push操作,需要加锁同步吗
如果线程A正在遍历vector,同时线程B正在push或erase,是否有可能导致A中遍历使用的迭代器失效?

------解决方案--------------------
显然需要同步
------解决方案--------------------
需要,可以当数组来考虑,你用数组的时候 2线程操作,不也是要加锁吗
------解决方案--------------------
必须的 STL不是线程安全的
------解决方案--------------------
必须要同步啊,加个锁什么,或者互斥量什么的。。。。。