C++编程小知识(4)数组的替代品

模板类vector

模板类vector类似于string类,也是一种动态数组。

可以在运行阶段设置vector对象的长度,可以在末尾附加新数据,还可以在中间插入新数据。

要使用vector对象,必须包含头文件vector,vector包含在名称空间std中。

如下示例:

#include <vector>
...
using namespace std;
vector<int> vi; //vi是一个有0个 int 元素的 vector对象
int n ;
cin>> n;
vector<double> vd(n);//vd是有n 个double元素的 vector对象

模板类array

vector 类的功能比数组强大,但代价是效率稍低。

如果需要的是长度固定的数组,使用数组是最佳的选择,但代价是不那么方便和安全。

因此,c++11新增了模板类array,array对象的长度也是固定的,也使用栈(静态内存分配)而不是自由存储区,因此效率与数组相同,但更加安全方便。

实例如下:

#include <array>
...
using namespace std;
array<int,5> ai;  //创建有5个int元素的ai 数组
array<double,4> ad={1.1,1.2, 1.3, 1.4};

与创建vector 对象不同的是,如上所示,以上元素数(4,5)必须是常量

== 可以将一个array对象赋值给另外一个array对象==

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值