gpt4 book ai didi

c++ - 如果迭代器未因插入而失效,则使用 std::find 和 C::insert() 线程安全

转载 作者:行者123 更新时间:2023-11-28 01:30:43 24 4
gpt4 key购买 nike

假设我有一个容器 C,其迭代器在 C.insert() 时未失效,我可以在执行并发 insert() 时安全地在容器上执行 std::find() 吗?也就是说,我是否保证找到匹配的元素或 C::end(),忽略插入的元素可能匹配但 std::find() 给我 C::end() 的事实?

最佳答案

没有。尽管迭代器不会因您的变异操作而失效,但它仍然是变异操作,并且没有一个标准容器被定义为可以安全地在一个线程中读取,而变异操作正在另一个线程中进行。请记住,您的容器仍然存在“内部结构”,各种内部状态,可能涉及这两个操作。

关于c++ - 如果迭代器未因插入而失效,则使用 std::find 和 C::insert() 线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51641392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com