【C++】《C++ 17 入门经典》读书笔记 07----数组的替代品之一: std::array 容器

1、std::array<> 容器:

标准库定义的容器:std::array<>。可作为 C++ 语言内置的普通数组的直接替代品,使用起来更容易、更安全,并且相比低级的内置数组能提供更大的灵活性。

array<T, N>容器在 array 头文件定义,所以必须在源文件中包含这个头文件,才能使用容器类型。

array<T, N>容器是类型为 T 的 N 个元素的固定序列,所以它很像普通数组,只是类型和大小的指定略有区别。

下面创建了一个 array<> 容器,它包含 double 类型的 100 个元素:

std::array<double, 100> values;

参数 N 必须指定为一个常量表达式,这与普通数组一样。

2、初始化:

std::array<double, 100> values {0.5, 1.0, 1.5, 2.0};

使用 array<> 对象的 fill() 函数可以把所有元素设置为某个给定的值。例如:

values.fill(3.14159265358979323846);

3、访问各个元素:

使用索引可以访问和使用元素,其方式与标准数组相同,例如:

valuse[4] = values[3] + 2.0*values[1];

下面是另外一个例子,可计算 values 对象中所有元素的和:

double total {};
for (size_t i {}; i < values.size(); ++i)
{
    total += values[i];
}

array<> 对象是一个范围, 所以可以使用基于范围的 for 循环计算元素之和:

double total {};
for (auto value: values)
{
    total += value;
}

4、 array<> 上的操作:

只要容器的大小相同, 存储相同类型的元素,就可以使用任意比较运算比较整个 array<>容器。

5、结论:

应该在代码中优先使用 array<> 容器而不是标准数组。

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值