我在Nicolai M. Josuttisstd::valarray
写的 C++ 书中读到。他在他的书《C++ 标准库》第 17.4 章中写道:
valarray 类的设计不是很好。事实上,没有人试图确定最终规范是否有效。发生这种情况是因为没有人对这些课程感到“负责”。将 valarrays 引入 C++ 标准库的人早在标准完成之前就离开了委员会。因此,很少使用 valarrays。
那么,在哪里使用是个好主意std::valarray
?
创建 Valarray 是为了让编译器可以更快地执行。但是,这些优化可以通过其他方式实现,并且很少使用 valarray。
std::valarray 和辅助类被定义为没有某些形式的别名,因此允许对这些类的操作进行优化,类似于 C 编程语言中关键字限制的效果。此外,允许接受 valarray 参数的函数和运算符返回代理对象,以使编译器可以优化表达式,例如 v1 = a v2 + v3; 作为执行 v1[i] = a v2[i] + v3[i] 的单个循环;避免任何临时或多次通行证。......
换句话说,valarrays 应该用在有很多值主要传递给简单表达式的地方。
很少对 valarray 进行进一步优化,例如在 Intel Parallel Studio 中。
您可以在cppreference找到更多信息