valarray使用: valarray类似vector,也是一个模板类,其主要被用来对一系列元素进行高速的数字计算。 但是它和vector还是有区别的: 1、valarray定义了一组在两个相同长度和相同类型的valarray类对象之间的数字计算,例如xarr = cos(yarr) + sin(yarr); 2、通过重载operater[],可以返回valarray的相关信息(valarray其中某个元素的引用、特定下标的值或者其某个子集)。 它支持很多数值数组操作,如求数组总和,最大值,最小值等。 通过引用#include
- //将减号应用于valarray中的每个元素的一元运算符。即为负号
-= //将指定的valarray元素或元素类型的值(元素)和操作数进行相减。 /= //用指定valarray的元素或元素类型的值元素分隔操作数valarray。 = //将元素分配给valarray,其值可以直接指定,也可以作为其他某些数据项的一部分或由slice_array,gslice_array,mask_array或indirect_array指定。 [ ] //返回对指定索引或指定子集的元素或其值的引用。 ^= //获取具有指定valarray或元素类型值的数组的元素明确的逻辑或运算符(XOR) |= //获取数组中元素的按位或或者与指定的数组中的相应元素或元素类型的值。 ~ //一个一元运算符,用于获取valarray中每个元素的按位非值。 slice类用法: 该类主要配合 valarray 类使用,可以从 valarray 中提取子数组 slice( ); slice( size __ _t __StartIndex _,// 截取数组的开始位置 const valarray
1 |
|
这里有一个问题就是slice的使用类似切片操作,但是我明明编译没有错误,但是就是显示不出来结果,暂时没办法解决,感觉是我c++编译器版本的问题。