int *pia = new int[10];
int *pia2 = new int[10]();
//10个int使用列表中对应的初始化器初始化
int *pia3 = new int[10]{0,1,2,3,4,5,6,7,8,9};
//10个string,前4个用给定的初始化器初始化,剩余的值初始化。
string *psa = new string[10]{"a", "s", "sd", string(3, 'x')};
在数组定义时,我们不能定义长度为0的数组
char arr[0]; //错误:不能定义长度为0的数组
char *cp = new char[0]; //合法操作,但是cp不能进行解引用操作
//当我们用new分配一个长度为0的数组时,new返回一个合法的非空指针。
uninitialized_copy(b, e, b2) 从迭代器b和e指出的输入范围内,拷贝元素到迭代器b2指定的未构造的原始内存中。
uninitialized_copy_n(b, n, b2) 从迭代器b指向的元素开始,拷贝n个元素到b2开始的内存中。b指向的内存要足够大
uninitialized_fill(b, e, t) 从迭代器b和e指定的原始内存范围内创建对象,都用初始值为t的填充对象
uninitialized_fill_n(b, n, t) 从迭代器b指向的内存地址开始,创建n个对象,都初始化为t。b指向的内存要足够大
copy函数返回指向最后一个元素之后的指针