首页 理论教育 C++STL精解:间接数组

C++STL精解:间接数组

时间:2023-10-25 理论教育 版权反馈
【摘要】:间接数组子集可以使用类indirect_array来表示。但是类indirect_array不能直接由用户构造或复制,和mask_array的用法一样,indirect_array是将valarray<size_t>用做valarray的下标而产生的子集。另外,类indirect_array和所有valarray的子集一样,具有以下属性。3)若valarray不是常量,子集表达式将导致一个indirect_array型数组,后者以reference语意来表现valarray的相应元素。4)indirect_array型数组提供赋值操作符和赋值复合操作符来修改子集中的元素。5)通过型别转换,可以将indirect_array型数组和其他valarray以及valarrays子集组合起来。

C++STL精解:间接数组

间接数组子集也是创建数组子集的一种方式,还可以任意排列元素。这是定义数组子集的第四种方法。同样,通过传递一个索引数组,即可定义一个valarray的子集。间接数组子集可以使用类indirect_array来表示。但是类indirect_array不能直接由用户构造或复制,和mask_array的用法一样,indirect_array是将valarray<size_t>用做valarray的下标而产生的子集。作为下标的valarray的元素个数必须小于原始valarray数组。

另外,类indirect_array和所有valarray的子集一样,具有以下属性。

1)若要定义某个valarray的子集,可以使用元素型别为size_t的valarray作为参数传递给valarray的下标操作符。

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

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

4)indirect_array型数组提供赋值操作符和赋值复合操作符来修改子集中的元素。

5)通过型别转换,可以将indirect_array型数组和其他valarray以及valarrays子集组合起来。

提示(www.xing528.com)

用来指定子集的索引无需排序,并且可以重复出现。

例6-9

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

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

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

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

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

我要反馈