为什么vector<int> v1;中v1的值是空,而vector<int> v2(10);中v2的值是0呢?

 我来答
wchyumo2011
2015-10-10 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2832万
展开全部
这两个是不一样的,一个有初始化参数,一个没有
(1) vector<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的。
(2)vector<int> a(10,1); //定义了10个整型元素的向量,且给出每个元素的初值为1
(3)vector<int> a(b); //用b向量来创建a向量,整体复制性赋值
(4)vector<int> a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(共3个)元素
(5)int b[7]={1,2,3,4,5,9,8};vector<int> a(b,b+7); //从数组中获得初值
追问
为什么v1的初始值是no values ,而v2的初始值是0呢?
追答
v1是默认的,没有初始大小,没有大小,v2初始了10个整型元素,他的值是不确定了,但是有些编译器的机制不一样,结果也是不一样的,不一定就都是0.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式