【问题标题】:Specify the length of all arrays in boost::multi_array在 boost::multi_array 中指定所有数组的长度
【发布时间】:2017-06-23 09:21:46
【问题描述】:

我有一个可能很愚蠢的问题,但我正在尝试使用 boost::multi_array 定义一个 8x3 数组(每行是一个单元格的 3 个 xyz 索引的数组,总共有 8 个单元格)。我的问题是,有没有比这样输入 [DIM] 8 次更短/更简单的方法:

static const int DIM = 3;
static const int CELL = 8;    
boost::multi_array<double, CELL> ii(boost::extents[DIM][DIM][DIM][DIM][DIM][DIM][DIM][DIM]);

声明我的数组?非常感谢!

【问题讨论】:

    标签: c++ arrays boost boost-multi-array


    【解决方案1】:

    boost::extents 只是一个生成器,您可以使用任何兼容的 ExtentList 模型来代替¹:

    boost::array<size_t, 8> dims;
    std::fill(dims.begin(), dims.end(), DIM);
    

    您可以编写自己的模型,不需要每个维度的后备存储。

    ¹ 见http://www.boost.org/doc/libs/1_63_0/libs/utility/Collection.html

    【讨论】:

      猜你喜欢
      • 2012-01-18
      • 1970-01-01
      • 2011-09-20
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2011-05-12
      • 2012-04-05
      相关资源
      最近更新 更多