12.2动态数组
之前学到new和delete是可以创建/删除一个对象的,但是我们有时候需要创建一组对象和删除一组对象。现在我们可以使用容器来这么做,vector,list,不过new和delete也提供了创建/删除一组对象的操作。
创建动态数组
使用new创建动态数组
我们可以使用如下的方式用new创建动态数组。
int* p = new int[10];
using TenArr = int[10];
int* p = new TenArr;
需要注意的是,动态创建的数组返回的是首个元素的指针,而不是数组类型,因此p不能使用范围for和begin( p ),end( p ).
如果在创建动态数组的时候,没有显式的初始化,则使用默认初始化。
我们可以使用()显式的初始化,也可以使用初始化列表进行初始化。但是不可以在()中写初始化列表。
int *p = new int[10];//默认初始化
int *p = new int[10]();//显式的初始化
int *p = new int[10]{
1,2,3,4,45,56};//列表初始化
int *p - new int[10]({
1});//错误
我们可以创建一个大小为0的动态数组。
int a[0];