c++ 数组(array)

版权声明:本文为作者创作,转载请注明出处:http://blog.csdn.net/claroja,如有商业用途请联系QQ:63183535。 https://blog.csdn.net/claroja/article/details/79389997

数组

typeName arrayName[ayyaySize];
int ragnar[7];  //创建一个包含7个int类型的数组ragnar

这里写图片描述

创建数组的过程其实是在内存中申请了一个连续的int类型宽度的空间,用下标来代替每个元素的变量名.

赋值的方式
1.初始化数组,一个一个赋值

int ragnar[3];
ragnar[0]=1;

2.初始化数组,并全部赋值

int ragnar[3]={}; //全部赋值为0
int ragnar[3]={1,2,3};//分别赋值
int ragnar[]={1,2,3};//自动识别长度

vector

模板类vector类似于string类,也是一种动态数组.可以在运行阶段设置vector对象的长度,可在末尾附加新数据,还可以在中间插入新数据.它是new创建动态数组的替代品.实际上,vector类确实使用new和delete来管理内存,但这种工作是自动完成的.
首先,使用vector对象,必须包含头文件vector.
其次,vcetor包含在命名空间std中,因此可以使用using编译命令/using声明或std::vector
第三,模板使用不同的语法来支出它的存储的数据类型
第四,vector类使用不同的语法来指定元素数

vector<typeName> vt(nElem)

include <vector>
using namespace std;//创建一个0长度的vector
vector<int> vi;
vector<double> vd(10); // 创建10个double类型的vector

array

array也位于名称空间std中,与数组一样,array对象的长度也是固定的,也使用栈(静态内存分配),而不是自由存储区,因此其效率与数组相同,但更方便,更安全.

array<typeName, nElem> arr;

# include <array>
using namespace std;
array<int, 5> ai;
array<double, 4> ad = {1.1,1.2,1.2,1.3};

比较三者之间的区别

数组 vector array
访问方式 支持标准访问 支持标准访问
存储位置
复制 逐个复制

参考文献:
c++ Primer Plus

展开阅读全文

没有更多推荐了,返回首页