【发布时间】:2015-10-20 02:15:42
【问题描述】:
我有一个接受对 valarray 的 const 引用的函数,我希望能够对数组进行切片并将切片传递给另一个需要 const slice_array 的函数。我知道我可以使用 operator[] 和一个切片从原始 valarray 中获取一个新的、复制的 valarray,但我想避免复制。一切都是常数,所以我觉得应该没问题。但是,valarray 的下标运算符的文档仅在应用于非常量 valarray 时返回 slice_array 对象。这感觉是 valarray 类的一个主要缺陷。我错过了什么吗?如何在不产生副本的情况下获得 const valarray 的一部分?
下面是我所说的一个例子:
void foo( const valarray<double> &big_stuff )
{
const slice_array<double> small_stuff = big_stuff[slice(start, size, stride)];
bar( small_stuff );
}
谢谢!
【问题讨论】: