vectory/array/valarray(STL)

学习STL时,就会遇到上述3个关于“数组”的模板。

C++提供了3个这样创建数组的方法,是3个不同团队开发的,不同的目的,所以就有了3个。

vectory:

vectory是个模板类,是STL的一部分(STL是C++的一个工具。里面写了很多方便使用C++编写程序的模板和方法,可以认为是一把屠龙宝刀),所以各种stl的各种操作都适用vectory(比如:排序,插入,重新排列,搜索,转到其它容器等操作)。

valarray:

valarray是个模板类,但不是stl的一部分,是为了处理数值分析而创建。可用于各种数据分析。所以stl和一些操作不能用于valarray,比如push_back, insert()。

array:

array是为了替代C++内置数组而开发的,使用数组操作更安全,更紧凑(其实我也没理解具体是怎么个紧凑法),他不是stl的一部分,但是吧,因为是数组,他有begin(),end(),rbegin(),rend()等。所以呢,一些stl操作可用于array。

所以,看了这3个数组模板是不是有点晕,这就是C++的复杂之一,一个概念,有很多种实现,各个实现有各个实现的特点。要是有一种集它们3个优点于一身的数组模板,那学起来也不用么费脑子了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值