加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++ array(STL array)的用法及初始化

发布时间:2020-12-16 07:36:46 所属栏目:百科 来源:网络整理
导读:arrayT,N 模板定义了一种相当于标准数组的容器类型。它是一个有 N 个 T 类型元素的固定序列。除了需要指定元素的类型和个数之外,它和常规数组没有太大的差别。显然,不能增加或删除元素。 模板实例的元素被内部存储在标准数组中。和标准数组相比,array 容器
array<T,N> 模板定义了一种相当于标准数组的容器类型。它是一个有 N 个 T 类型元素的固定序列。除了需要指定元素的类型和个数之外,它和常规数组没有太大的差别。显然,不能增加或删除元素。

模板实例的元素被内部存储在标准数组中。和标准数组相比,array 容器的额外幵销很小,但提供了两个优点:如果使用 at(),当用一个非法的索引访问数组元素时,能够被检测到,因为容器知道它有多少个元素,这也就意味着数组容器可以作为参数传给函数,而不再需要单独去指定数组元素的个数。

使用 array 容器类型时,需要在源文件中包含头文件 array。数组容器非常好用,这里有一个示例,展示了如何创建具有 100 个 double 型元素的 array<>:
std::array<double,100> data;
如果定义了一个 array 容器,却没有为元素指定初始值,那么元素就不会被初始化;但是可以如下所示,将它们初始化为 0 或者和默认元素类型等效的值:
std::array<double,100> data {};
使用该语句初始化后,容器中所有的元素都会变为 0.0。形参 N 必须是一个常量表达式(constant expression)并且容器中元素的个数不能变。当然,当创建 array 容器的实例时,要像创建常规数组那样,对元素进行初始化:
std::array<double,10> values {0.5,1.0,1.5,2.0};

初始化器列表中的 4 个值用于初始化前 4 个元素,其余的元素都将为 0。图 1 说明了这一点。


图 1

通过调用数组对象的成员函数 fill(),可以将所有元素设成给定值。例如:
values.fill(3.1415926);
fill() 函数将所有元素都设为传入的实参值。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读