大家好,我想在C ++中像这样初始化一个数组
int array[10]={1,2,3,4,5,6,7,8,9,10};
但我正在使用 new 操作符。
我知道我可以像下面这样做,然后迭代并分配值
shared_ptr<int[]> l (new int[7]);
但我真的很希望能有一种方法在新命令期间进行初始化
类似于这样 shared_ptr<int[]> l (new int[7] ={1,2,3,4,5,6,7});
但可悲的是,这不是有效的语法。
此外,在C++ 11标准中添加了一个新的STL容器Array,请问是否可以使用普通数组或STL Array实现此目标?
std::vector<int> Barray = {1,2,4,6,0,0,0} ;
,但是它在那一行报错。MVS2012支持初始化列表吗? - bournestd::default_delete<int[]>()
,即std::shared_ptr<int> ptr(new int[5]{1,2,3,4,5}, std::default_delete<int[]>());
? - bourneshared_ptr
没有像unique_ptr
一样为int[]
进行专门的特化处理,因此如果没有它的话会调用delete
而不是delete[]
。请记住,shared_ptr
不适用于存储动态数组。 - Pubby