在C中,这可以通过
轻松完成int myArray[10] = { 0 }; // all elements 0
(取自this回答)
我的问题是,C ++中是否存在类似(或相同)的方法,我可以使用它在构造函数中将数组初始化为0?
<小时/> 编辑1
我需要使用初始化列表来完成上述操作。
可能类似
struct aa
{
int i[10];
aa() : i {0}{}
};
答案 0 :(得分:0)
这是一个如何完成的例子
struct A
{
A() : a{} {}
enum { N = 10 };
int a[N];
} a;
或者
struct A
{
A() : a{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } {}
enum { N = 10 };
int a[N];
} a;
for (int x : a.a) std::cout << x << ' ';
std::cout << std::endl;
另一种方法是使用std::array
类型的对象。例如
#include <array>
//...
struct A
{
A()
{
a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
}
enum { N = 10 };
std::array<int, N> a;
} a;
for (int x : a.a) std::cout << x << ' ';
std::cout << std::endl;
答案 1 :(得分:0)
是。相同的语法适用于C ++,虽然它有不同的名称(列表初始化,或者在这种情况下是特殊情况,聚合初始化)。
但是,在成员初始化列表中,您必须使用不同的语法:List<int[]> Listintegers = yourList
.Select(y => y.Select(x => int.Parse(x)).ToArray())
.ToList();
。请注意,显式初始化第一个元素为0是不必要的,因为这是默认值。