我有一个类,分别是一个结构,其成员变量类型为std::array<char, 100>
,名为charArray。我想明智地初始化这个阵列。使用init初始化哪些值是明智的,最好的方法是什么?
我想我可以在构造函数中使用std::fill()
但这是我应该这样做的方式吗?我的意思是因为初始化与分配?
感谢。
答案 0 :(得分:1)
一个简单的解决方案是将数组初始化为类型的默认值。举个例子
struct Foo
{
std::array<int, 10> bar;
Foo() : bar({}) {}
};
此处bar
将被初始化为全0。您可以将其与
struct Bar
{
std::array<int, 10> baz;
};
默认初始化baz
,其元素将具有不确定的值。您可以看到所有这些与
struct Foo
{
std::array<int, 10> bar;
Foo() : bar({}) {}
};
struct Bar
{
std::array<int, 10> baz;
};
int main(){
Foo foo;
for (auto e : foo.bar)
std::cout << e << " ";
std::cout << std::endl;
Bar bar;
for (auto e : bar.baz)
std::cout << e << " ";
}
可能的输出:
0 0 0 0 0 0 0 0 0 0
-917263728 4197632 4197632 4197632 4197632 4197632 6295552 0 4197581 0