在C++中数组和向量都是多同类元素的集合,他们也有很明显的区别
1 数组属于静态分配,编译之前必须知道数组的大小,一旦确定就不能更改;2个数组之间不能直接赋值实现拷贝,而必须显式用for或者拷贝函数拷贝。数组名实际是个地址,sizeof(数组名)当数组名是实参时表示的是数组的真实字节数,而如果在函数中数组作为形参,此时的sizeof(数组名)是求指针类型的字节数。求数组长度的方法sizeof(a)/sizeof(a[0]).
2 向量:比较灵活,运行中可以调整数组的大小;赋值可以列表化赋值,也可以通过定义时赋值;或者通过push_back()的方法动态添加
vector<string> vs(2, "hello"); // 2个"hello" 的string
for (int i = 0; i < 100; i++) { vi.push_back(i); //依次把i的值放到vector的尾端 } //循环结束后vi有100个元素,值从0到99