c++ - 使用 new 运算符初始化数组

标签 c++ arrays new-operator

我想以使用逗号分隔花括号括起来的元素的格式初始化一个数组,例如:

int array[10]={1,2,3,4,5,6,7,8,9,10};

但是,我需要使用 new 运算符来分配内存,例如:

int *array = new int[10];

有没有办法组合这些方法,以便我可以使用 new 运算符分配内存并使用花括号初始化数组?

最佳答案

在新的 C++ 标准 (C++11) 中,您可以这样做:

int* a = new int[10] { 1,2,3,4,5,6,7,8,9,10 };

它被称为初始化列表。但在以前的标准版本中这是不可能的。

具有更多详细信息(并且很难阅读)的相关在线引用是 here .我还使用 GCC 和 --std=c++0x 选项进行了尝试,并确认它确实有效。

关于c++ - 使用 new 运算符初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9603696/

相关文章:

C++ ofstream浮点编码

c++ - 只是 C++ 中的事件

Javascript在对象数组中查找具有匹配属性的对象,并获取另一个属性(如果存在)

php - PHP 是否优化数组类型的函数参数,而不是在未修改时通过引用显式传递?

java - SimpleXML 枚举区分大小写

python - shared_ptr<QCoreApplication> 崩溃

c++ - 语法命题 : readability of templated type declarations

javascript - 我在 session 变量中传递了一个数组。我需要将击键传递给它以返回值

c++ - 过度分配新/删除

c++ - 重载 operator new/分配超过对象大小