码迷,mamicode.com
首页 > 其他好文 > 详细

vector初始化

时间:2015-09-02 00:01:17      阅读:362      评论:0      收藏:0      [点我收藏+]

标签:

  对vector对象来说,直接初始化的方式适用于3种情况:1.初始值已知且数量少;2.初始值是另一个vector对象的副本;3.所有元素的初始值都一样。此外还有一种更常见的情况是4.创建一个vector对象时并不清楚实际所需元素的个数,元素的值也无法确定。或者元素的初值已知,但如果这些总量较大而各部相同(对于这种情况,更好的处理方法是先创建一个空vector,然后再运行时再利用vector的成员函数push_back向其中添加元素)。

  1.vector<T> v1  v1是一个空vector,它潜在的元素是T类型的,执行默认初始化;

  2.vector<T> v2(v1)  v2中包含有v1所有元素的副本;

  3.vector<T> v2=v1  等价于v2(v1),v2中包含有v1所有元素的副本;

  4.vector<T> v3(n,val)  v3包含了n个重复的元素,每个元素的值都是val;

  5.vector<T>  v4(n)  v4包含了n个重复地执行了值初始化的对象;

  6.vector<T> v5{a,b,c...}  v5包含了初始值个数的元素,每个元素被赋值相应的初始值;

  7.vector<T>={a,b,c...}  等价于v5{a,b,c...}

  ¥¥列表初始化还是元素初始化

  在某些情况下,初始化的真实含义依赖于传递初始值时用的是花括号还是圆括号。例如,用一个整数来初始化vector<int>时,整数的含义可能是vector对象的容量也可能是元素的值。类似的,用两个整数来初始化vector<int>时,这两个整数可能一个是vector对象的容量,另一个是元素的初值,也可能它们是容量为2的vector对象中两个元素的初值。通过花括号或圆括号可以区分上述这些含义:

  vector<int> v1(10);  //v1有10个元素,每个元素的值都是0

  vector<int> v1{10};  //v2有1个元素,该元素的值是10

vector初始化

标签:

原文地址:http://www.cnblogs.com/QoQian/p/4775324.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!