【发布时间】:2021-12-21 23:19:35
【问题描述】:
如何理解section map/insert中cppreference中here的句子:
如果插入成功,指针和引用 保存在节点句柄中时获得的元素无效, 以及在该元素之前获得的指针和引用 提取后生效。
【问题讨论】:
-
该注释适用于涉及
node_type的重载。请注意,它没有提到迭代器,只有指针和引用。正如它之前的句子所说,“没有迭代器或引用无效。” (另请注意,这并不意味着并发修改是安全的。) -
此 STL 中没有线程安全保证,因此如果您从不同线程同时访问同一个容器,则行为未定义。
-
请,每个问题只问一个问题。
-
我相信它是指插入提取的元素。它不会导致任何迭代器或引用失效。然而,迭代迭代器是另一回事,当使用擦除/插入/提取操作时,它会在不同线程完成时强加内存竞争。
-
@gerum 此 STL 中没有线程安全保证 - 这不是真的:en.cppreference.com/w/cpp/container#Thread_safety
标签: c++ dictionary stl