c++ - STL容器的只读操作

标签 c++ stl

此处需要建议:STL 容器的哪些操作被认为是只读的?取vector<int>例如,可以安全地说任何不改变底层 int 数据的操作都是只读的吗?我正在编写一个多线程程序,但不太确定通过引用/指针传递容器是否是线程安全的。

在两者之间,相同的规则是否也适用于 basic_string?任何有助于快速了解 STL 容器内部机制的推荐资源?谢谢。

最佳答案

声明为 const 的方法很可能不会修改容器,尽管您不能确定。

在多线程应用程序中使用 STL 容器时,您将需要一个外部同步机制。 C++ 标准库不是线程安全的,假设其中一个线程更改了 vector 对象的状态,任何不同步的多线程使用都将导致未定义的行为。

关于c++ - STL容器的只读操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1801834/

相关文章:

c++ - 我应该使用公共(public)变量还是私有(private)变量?

android - 带或不带括号的 JNIEnv 用法?

c++ - 从可能由不同线程修改的位集 (C++) 访问(读取)位是否安全

c++ - 使用 objective-c 框架的 Swift 项目

c++ - "no matching function call to ' 使用 Android NDK 编译时绑定(bind) '"

c++ - 将重载的成员函数传递给函数模板

c++ - 高效的字符串字典

c++ - 如何使用 vector 的 vector 来读取图形?

c++ - 是 std :vector<char[30]> valid, 还是如何实现的? (固定大小数组的 vector ?)

c++ - 尝试制作对象时出错