std::vector::operator[]
“返回对 vector 容器中位置 n 处元素的引用。”
我可以永远使用这个引用吗?我可以将它传递给另一个线程并从另一个线程使用吗?是否有可能引用无效(例如,导致 vector 调整大小)并且我在某些时候有“垃圾”而不是真实元素?
最佳答案
几乎 vector 的任何变化都可能导致对元素的引用失效。如果您从不改变 vector ,那么引用将保持有效。
如果您将 vector 视为一个数组,那么这是有道理的,因为您必须移动元素的任何删除都可能意味着您不再指向正确的元素,如果您必须重新分配内存,那么元素也将不再在同一个地方。
关于c++ - 我可以使用 std::vector::operator[] 返回的引用多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31246573/