首页 理论教育 C++STL精解:类mask_array

C++STL精解:类mask_array

时间:2023-10-25 理论教育 版权反馈
【摘要】:mask_array是将一个valarray<bool>型对象用作valarray数组下标的结果。由上述说明可知,类mask_array的功能就是使用布尔表达式屏蔽相应元素。3)若valarray型数组不是常量,子集表达式将导致一个mask_array,后者以reference语意来表现valarray的相应元素。4)mask_array提供赋值操作符和复合赋值操作符,用来修改子集中的元素。5)通过型别转换,将mask_array与其他valarray和valarray的子集组合起来。mask_array的使用方法详见例6-8。图6-8 例6-8的执行效果总结请读者要认真阅读上述例题,仔细体会类mask_array的功能和使用方法。

C++STL精解:类mask_array

数组类valarray还提供了另一种描述数组子集的方式:屏蔽子集。valarray类的对象经过“屏蔽”处理后,其返回结果为valarray<bool>型。将“屏蔽”作为数组(valarray)的下标,值为true的位表明对应的valarray型数组中的元素将作为结果的一部分。在此基础上,程序员同样可以在valarray的特定子集上操作。和slice_array相同,mask_array不能由程序开发者构造或复制。mask_array是将一个valarray<bool>型对象用作valarray数组下标的结果。屏蔽的valarray的元素个数不能多于以它作为下标的那个valarray的元素个数。

由上述说明可知,类mask_array的功能就是使用布尔表达式屏蔽相应元素。具体地说,mask_array和所有valarray subsets一样,具有以下属性:

1)若要定义某valarray型数组的具体子集,可以将布尔型的valarray作为参数传给val-array的下标操作符。

2)如果valarray是常量,子集表达式将导致新的valarray。

3)若valarray型数组不是常量,子集表达式将导致一个mask_array,后者以reference语意来表现valarray的相应元素。

4)mask_array提供赋值操作符和复合赋值操作符,用来修改子集中的元素。

5)通过型别转换,将mask_array与其他valarray和valarray的子集组合起来。mask_array的使用方法详见例6-8。

例6-8(www.xing528.com)

978-7-111-51399-5-Chapter06-73.jpg

978-7-111-51399-5-Chapter06-74.jpg

例6-8的执行效果如图6-8所示。

978-7-111-51399-5-Chapter06-75.jpg

图6-8 例6-8的执行效果

总结

读者要认真阅读上述例题,仔细体会类mask_array的功能和使用方法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈