在C++中合理地初始化字符数组
Init char array sensibly in C++?
我有一个类和一个结构,该结构具有一个名为charArray的std::array<char, 100>
类型的成员变量。我想合理地初始化这个数组。用哪些值初始化数组是明智的,最好的方法是什么?
我想我可以在构造函数中使用std::fill()
,但这真的是我应该做的吗?我的意思是因为初始化和分配?
谢谢。
一个简单的解决方案是将数组值初始化为类型的默认值。以为例
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
实时示例
相关文章:
- 使用 cin.get() 初始化字符数组
- 当我们不使用空字符显式初始化字符数组时,字符串的长度是多少?
- 从 C++ 中的位表示形式初始化字符
- 初始化字符*
- 澄清了 strcpy() 在像这样初始化字符数组时的工作 *Arr.
- 使用 auto 关键字初始化字符数组
- make_unique值是否初始化字符数组
- 正在从常量初始化字符数组
- 在类构造函数中初始化字符矩阵
- 如何使用整数值中的数字符号初始化字符数组
- 如何初始化字符的 2D 数组
- 初始化字符数组 - C 和 C++
- 无法初始化C++字符
- 如何使用字符串(字符数组)初始化字符指针,而不是使用整数数组初始化 int 指针
- 是否可以使用有条件选择的字符串文本初始化字符数组
- 初始化字符时空字符的重要性
- 如何使用十六进制数初始化字符数组
- 断言错误,即使在使用 new 初始化字符指针后也是如此
- 如何在C++中使用字符串文字初始化字符的动态数组
- 有没有办法使用位初始化字符