如果我理解正确的话,从 C++11 开始,可以安全地并发调用容器的 const 成员函数,并修改容器的元素,只要容器本身没有作为操作的一部分被修改(例如,在 cppreference.com 上查看的关于线程安全性的表格)。由于 std::valarray 没有列在(草案)标准的容器部分中,我不确定线程安全性是否也适用于它。换句话说,
- 使用 std::valarray(特别是使用带有切片的 operator[])并发读取是否安全?
- 如果 T 操作是安全的,那么修改 std::valarray<T> 的元素是否安全?
我想使用 std::valarray 来存储一个多维数字数组,并使用多个线程填充。
std::valarray
在容器家族中确实是一个孤儿。我怀疑很少有人使用它。 - SergeyA