C++-STL-vector:vector的初始化【vector<int> a】【vector<int> a(7)】【vector<int> a(7,3)】【vector<int> a= {1,2}】

一、vector<int> a;

默认初始化,最常用

此时,vector为空, size为0,表明容器中没有元素,而且 capacity 也返回 0,意味着还没有分配内存空间。

这种初始化方式适用于元素个数未知,需要在程序中动态添加的情况。

二、vector<int> a(7);

定义了7个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的。

默认值初始化,a中将包含7个元素,每个元素进行缺省的值初始化,对于int,也就是被赋值为0,因此a被初始化为包含7个0。

当程序运行初期元素大致数量可预知,而元素的值需要动态获取的时候,可采用这种初始化方式。

三、指定值初始化【vector<int> a(7,3);】

定义了7个整型元素的向量,且给出每个元素的初值为3;

指定值初始化,ilist5被初始化为包含7个值为3的int;

这个也比较常用。

四、vector<int> a(b); 或者 vector<int> a= b;

拷贝初始化:用b向量来创建a向量,整体复制性赋值

两种方式等价 ,
a初始化为b的拷贝,
a必须与b类型相同,
也就是同为int的vector类型,
a将具有和b相同的容量和元素

五、vector<int> a= {1,2,3.0,4,5,6,7};

vector<int> a = {1,2,3.0,4,5,6,7};    //列表中元素的拷贝

a 初始化为列表中元素的拷贝,列表中元素必须与ilist的元素类型相容,本例中必须是与整数类型相容的类型,整形会直接拷贝,其他类型会进行类型转换。

六、vector<int> a(b.begin()+2, b.end()-1);

定义了a值为b中第2个到导数第2个元素

int b[7]={1,2,3,4,5,9,8};

vector<int> a(b,b+7); 

注意:

vector<int> a;
for(int i=0;i<10;i++)
    a[i]=i;

这种做法以及类似的做法都是错误的,下标只能用于获取已存在的元素,而现在的a[i]还是空的对象。

vector的元素不仅仅可以是int,double,string,还可以是结构体,但是要注意:结构体要定义为全局的。

Vector作为函数的参数或者返回值时,需要注意它的写法:

int Distance(vector&a, vector&b)  // 其中的“&”绝对不能少!

C++:vector 六种初始化方法 - 简书

C++:vector 六种创建和初始化方法_SSS_369的博客-CSDN博客_c++ 创建vector

C++:vector的初始化(5种)_汐,陵的博客-CSDN博客_c++ vector初始化

vector 的六种 创建和初始化方法_未来老干部的博客-CSDN博客_vector初始化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值