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

1、std::vector<> 容器:

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

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

向量容器 vector<> 是一个序列容器,类似于 array<T, N>容器,但是功能更加强大。不需要在编译时提前知道 vector<> 将存储的元素数量。

vector<> 的大小可以自动增加,以容纳任意数量的元素。

下面创建了一个 vector<> 容器,以存储 double 类型的值:

std::vector<double> values;

2、初始化:

std::vector<double> values(20);

与内置数组和 array<> 对象不同, vector<> 容器总会初始化元素。

vector<> 没有 fill() 函数。相反,它提供了 assign() 函数,可用来重新初始化 vector<> 的内容,就像第一次初始化那样。

3、访问各个元素:

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

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

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

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

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

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

4、结论:

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

如果在编译时知道元素的准确数量 ,就使用 std::array<>容器, 否则使用 std::vector<> 容器。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值