【发布时间】:2013-03-12 19:42:48
【问题描述】:
想知道以下列方式迭代向量等 STL 容器是否安全,以避免锁定读/写,但只允许任何“写入”线程执行 push_back() 操作。
for (size_t i = 0; i < vec.size(); i++)
{
const T& t = *vec[i];
// do something with t
}
我知道迭代器可能会因容器的更改而失效,但也许如果我们确保初始容器大小足够大以供将来添加,那么在不锁定读取或写入的情况下迭代元素也应该是安全的?
【问题讨论】:
标签: c++ performance stl locking