gpt4 book ai didi

c++ - C++中初始化数组容器的方法

转载 作者:行者123 更新时间:2023-11-30 01:11:53 27 4
gpt4 key购买 nike

(如果我没有正确使用术语或者我问的是一个明显的问题,我深表歉意。我最近才开始学习 C++)

我看到网上大多数例子都是用下面的方式来初始化数组容器:

std::array<int,3> myarray = { 2, 16, 77 };

但我尝试执行以下操作:

std::array<int,3> myarray;

myarray[0] = 2;
myarray[1] = 16;
myarray[2] = 77;

似乎也在工作。第一种方法优于第二种方法还是第二种方法根本不正确?

最佳答案

std::array<int,3> myarray = { 2, 16, 77 };是优越的:

  1. 更清晰

  2. myarray永远不会处于未定义状态。与 std::array<int,3> myarray; , 元素是默认初始化的,这意味着 未初始化 作为 int 的默认初始化是让它未初始化。因此,在设置元素值之前回读元素的行为是未定义的。

  3. 可能更快。 (编译器可能会将您采用的第二种方式优化为第一种方式)。

从 C++11 开始,我认为第二种方式是错误的。

关于c++ - C++中初始化数组容器的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35154942/

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