C++映射libstd++中的括号运算符
C++ map bracket operator in libstd++
我知道C++映射括号运算符是非常量的。但是,如果我们已经调用了m[key]where key,那么gcc实现真的会改变映射吗是否存在于地图m?
更具体的问题是:如果一个线程执行非常量括号运算符,我们是否可以继续依赖其他可以访问m的线程来从m读取数据?
更具体的问题是:如果一个线程执行非常量括号运算符,我们是否可以继续依赖其他可以访问m的线程来从m读取数据?
不,你不能。标准库中的容器本身并不是线程安全的。您将需要围绕它们的代码,以确保对它们的访问是线程安全的。
相关文章:
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- C++ STD 函数运算符:有没有一种方法可以通过函数将一个向量映射到另一个向量上?
- 由于没有使用赋值运算符,映射的值是如何初始化的?
- 映射迭代器与运算符不匹配
- 在映射中使用结构作为键,忽略 == 运算符,误报
- c++:复制、删除和运算符=在原始指针映射中
- 在结构的嵌套映射上链接运算符 []
- 为什么 c++ 映射的运算符<不适用于 <=
- 写入/读取 std::映射到二进制文件需要运算符
- C++ STL 比较映射找不到(运算符==)
- 错误:尝试在两个映射中插入时,"__x < __y"中的"运算符<"不匹配
- 从运算符[]返回对映射的char*的引用
- std::映射运算符[]--未定义的行为
- 为什么我不能迭代这个 C++ 映射?出现错误,例如我无法使用<运算符
- 重载 [ ] 运算符用于 C++ 中的 stl 映射
- 是否可以使用运算符作为映射中的映射值
- 无序映射中运算符[]的C++专门化
- 没有用于引用映射的可行重载运算符
- 在映射中插入地址时,新运算符重载会导致无限递归
- 标准:映射与运算符=不匹配