一、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 六种创建和初始化方法_SSS_369的博客-CSDN博客_c++ 创建vector