【问题标题】:fastest way to initialize a template 2D std:array to 0将模板 2D std:array 初始化为 0 的最快方法
【发布时间】:2017-05-11 21:32:07
【问题描述】:

我有一个模板化的二维数组std::array< std::array<ScalarType ,3> ,3 > my_array,我想在程序的不同时间将它们全部设置为零。看来我可以使用std::array::fill 但是

my_array.fill(0);

不工作。如何正确填充二维数组?

【问题讨论】:

  • 我倾向于创建一个包含所有零的const 数组对象,并在需要将其归零时将其复制到您的数组中。我可能会将该数组对象命名为 zero
  • 每当你说“不工作”时,你应该通过发布编译器错误消息或运行时出错的描述来证实这一点。只是说“不工作”是没有用的——它可能意味着任何事情

标签: c++ arrays templates stl initialization


【解决方案1】:

我建议使用

my_array.fill({});

参数中的{}创建一个零初始化的std::array<ScalarType, 3>,用于填充my_array的内容。

【讨论】:

【解决方案2】:

改变这个:

my_array.fill(0);

到这里:

my_array.fill({});

哪个默认初始化你的数组的内容。

【讨论】:

    猜你喜欢
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 2021-01-03
    • 1970-01-01
    • 2022-01-13
    • 2012-06-24
    相关资源
    最近更新 更多