11/30c++数组与vector的区别填坑

本文深入探讨了数组和vector这两种数据结构的区别。详细介绍了数组作为内置类型,存储在栈中,而vector作为类模板,存储在堆中,由STL管理。文章还对比了它们在大小固定性、初始化方式及执行效率上的不同。

  首先,问题由vector和数组的数据引用格式类似引出。由array[i],vector[i]产生疑问,数组和vector的赋值方式类似吗?是不是有别的共同点呢?最后结论:除了各自的引用有一种恰巧外形类似,别的方面基本没有共同点。详细资料如下:

  简要回顾一下array数组和vector(姑且称之向量)的部分基础:

  一、Array与Vector

  1.Array

  Array,是一种内置类型,存放在由系统“栈”中,由系统执行对应内存的分配与释放。

  Array的类型:int[维度]。array的类型不是简单的类型标识符,而是类型+[维度]组合而成的特殊类型。

  Array的引用:array[i],i表示希望引用的数据在数组中对应的位置,由0开始查询。

  Array的初始化:从概念上讲,Array使用前必须指定其类型与大小,初始化时形式上可以不指定,但本质上是由系统计算并使用对应类型的初值填充。如:int[] = {1};int[2] = {1}; 

  访问Array数组元素:a[],括号内维度不可越界。

 

2.vector

  vector,是一种类模板,存放在“堆”找那个,由标准模板库中的程序负责内存的分配和释放,操作简单。

  vector的类型:为定义时vector <>中<>内的类型,vertor的大小可以变化。

  vector的大小:可以通过push_back或者pop对vector的大小进行变化。

  vector的初始化:①默认初始化,vector<int> ilist1,size和capacity都为0,需要之后使用时添加。

②拷贝赋值初始化:vector<int> ilist2(ilist);  vector<int> ilist2  = ilist; 首先ilist与ilist2的类型需要一致,赋值完成时ilist2将具有与ilist一样的容量与元素。

③列表赋值法vector<int> ilist = {1,2,3.0,4,5,6,7}; vector<int> ilist {1,2,3.0,4,5,6,7}; 需要注意花括号中的值类型是否与尖括号中的类型保持一致。

④默认值初始化,vector<int> ilist(7,3); 意为名为ilist的vector被初始化成功,并拥有了七个类型为int值为3的元素。

 

3.数组与vector的区别

  ①内存的存放位置及分配与释放区别

  ②大小是否固定

③初始化方式

④执行效率。因为vector在拓宽内存时需要消耗大量companity

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值