相比较于vector,数组的缺点
前言
数组和vector一样可以存放任意对象,除了引用,即不存在引用的数组,也不存在引用的vector。
数组的缺点
数组的灵活性差
数组在定义声明时,必须使用常量表达式给出其容量大小,而且程序运行时数组不允许动态的增删元素;vector是可以的,例如push_back添一个元素,erase或pop_back删除元素。
有一个细节,数组的容量必须大于0;vector允许容量为0。
数组在初始化时,用于初始化的元素个数,不能大于数组容量,允许小于或等于数组容量;而vector由于可以添加元素,所以没有这一层的限制(但是使用下标操作vector元素时,跟数组一样不能超出容量范围,即不能下标越界)。
数组不允许拷贝和赋值
不能将数组的内容拷贝给其它数组作为初始值,也不能用数组为其它数组数组赋值;vector允许拷贝和赋值。但是,数组可以通过循环体,一个元素一个元素的拷贝和赋值(注意使用下标时不能越界)。
//假设arr[10]已经定义且初始化
int arr2[] =arr; //错误,不允许用一个数组去初始化另一个数组
int arr3[10] = {0};
arr3 = arr; //错误,不能直接的将一个数组赋值给另一个数组
数组更容易越界
数组在使用下标时,很容易因为越界而使程序出错ÿ