您的位置:首页 > 其它

六、STL的数值计算---数组(向量)运算---mask_array类

2017-08-17 16:13 274 查看

4.类mask_array

valarray类提供了一种描述子集的方式: 屏蔽子集。

valarray类经过“屏蔽”处理后,返回结果为
valarray<bool>


将“屏蔽”作为下标,值为true的位表明了对应的valarray数组中的元素将作为结果的一部分。

和slice_array一样,mask_array不能有程序开发者构造和复制。

屏蔽的valarray的元素的个数不能多于valarray的元素个数。

【mask_array就是使用布尔表达式来屏蔽相应元素的结果。】

例子:

//----------------------省略-----------------
valarray<int> val_1 = { 1, 2, 3, 4, 5, 6, 7 ,8,9};
bool b[] = {0,1,0,1,0,1,1};
valarray<bool> ms(b,7);//屏蔽

//bool值数对应,ms和val_1一一对应,0屏蔽,1选择
//2,4,6,7对应位置为1,不屏蔽
valarray<int>  val_2 = val_1[ms];

//bool表达式,大于5的值
valarray<int> val_3 = val_1[val_1 > 5];
//----------------------省略-----------------


输出结果为:

val_2:  2   4   6   7
val_3:  6   7   8   9
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐