此处需要建议:STL 容器的哪些操作被认为是只读的?取vector<int>
例如,可以安全地说任何不改变底层 int 数据的操作都是只读的吗?我正在编写一个多线程程序,但不太确定通过引用/指针传递容器是否是线程安全的。
在两者之间,相同的规则是否也适用于 basic_string?任何有助于快速了解 STL 容器内部机制的推荐资源?谢谢。
最佳答案
声明为 const 的方法很可能不会修改容器,尽管您不能确定。
在多线程应用程序中使用 STL 容器时,您将需要一个外部同步机制。 C++ 标准库不是线程安全的,假设其中一个线程更改了 vector 对象的状态,任何不同步的多线程使用都将导致未定义的行为。
关于c++ - STL容器的只读操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1801834/