gpt4 book ai didi

c++ - 在 C++ 中明智地初始化 char 数组?

转载 作者:行者123 更新时间:2023-11-30 05:33:33 25 4
gpt4 key购买 nike

我分别有一个类和一个结构,其成员变量类型为 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

Live Example

关于c++ - 在 C++ 中明智地初始化 char 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34730837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com