c++ 我有一个方法test 里面启动了一个线程,通过引用传参传了一个vector vec,在这个线程里面往vec push了三个元素进去,那么这时候我在test里面vec长度没有变化是什么原因
时间: 2024-03-29 17:36:47 浏览: 30
Vector(向量)在C++中是一个非常重要的数据结构.docx
这种情况可能是因为在启动线程时,传递的是vector对象的引用,而在主线程中没有等待子线程完成,导致在主线程中访问vector对象时,子线程还未完成对vector的操作,因此vector长度没有变化。可以使用join()方法等待子线程完成后再访问vector对象。另外,还需要考虑线程安全的问题,确保在多线程环境下对vector的访问是安全的。
阅读全文