slice_array
类
一个内部的辅助类模板,通过提供由 valarray
的切分定义的子集阵列之间的操作来支持 slice
对象。
语法
template <class Type>
class slice_array : public slice {
public:
typedef Type value_type;
void operator=(const valarray<Type>& x) const;
void operator=(const Type& x) const;
void operator*=(const valarray<Type>& x) const;
void operator/=(const valarray<Type>& x) const;
void operator%=(const valarray<Type>& x) const;
void operator+=(const valarray<Type>& x) const;
void operator-=(const valarray<Type>& x) const;
void operator^=(const valarray<Type>& x) const;
void operator&=(const valarray<Type>& x) const;
void operator|=(const valarray<Type>& x) const;
void operator<<=(const valarray<Type>& x) const;
void operator>>=(const valarray<Type>& x) const;
// The rest is private or implementation defined
}
备注
该类描述的对象将存储对 valarray<Type>
类的对象以及 slice
类的对象的引用,它描述了要从 valarray<Type>
对象中选择的元素序列。
该类模板是由某些 valarray
运算间接创建的,无法直接在程序中使用。 slice
下标运算符使用的内部辅助类模板:
slice_array<Type> valarray<Type>::operator[]( slice )
。
只能通过为 valarray va
的切分 sl
编写 va[sl]
形式的表达式来构造 slice_array<Type>
对象。 然后 slice_array
类的成员函数的行为方式就类似于为 valarray<Type>
定义的对应的函数签名,只不过仅所选的元素的序列受到影响。 slice_array
控制的序列由 slice
构造函数的三个参数定义,即 slice
中第一个元素的索引、元素数量以及元素之间的距离。 slice_array
从va[slice(2, 5, 3)]
索引为 2、5、8、11 和 14 的va
选定元素声明的切口valarray
va
。 若要过程有效,索引必须有效。
示例
有关如何声明和使用 slice_array
的示例,请参阅 slice::slice
的示例。
要求
标头:<valarray>
命名空间:std