C++ array(STL 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

本文标题:C++ array(STL array)的用法及初始化

本文地址:https://www.hosteonscn.com/2821.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注