【问题标题】:Multidimensional Arrays in C++C++ 中的多维数组
【发布时间】:2012-02-15 11:51:01
【问题描述】:

我必须实现一个网格文件。要求是为 1-32 维构建网格文件。就像我可能需要构建一个 4 维的网格文件,一个 32 维的网格文件等。

请推荐一个合适的数据结构,可以支持网格目录,可以用于1-32维(含)。

谢谢。

【问题讨论】:

  • 上次我读到的弦论也没有那么多维度......
  • grid directory 是什么意思?这应该是二进制数据前面的某种索引吗?
  • 您是要文件格式、程序内数据结构、(反)序列化一个到另一个的代码,还是全部三个?您在网格中存储了什么,您需要对其执行哪些操作?帮助我们,让这成为一个真正的问题。
  • 由 1 字节单元组成的 32 维网格,每个维度只有 2 个单元,将占用 4 GB。

标签: c++ data-structures multidimensional-array grid dimensions


【解决方案1】:

Boost 多维数组库 (Boost.MultiArray)

概要

Boost 多维数组库为 多维数组,以及语义等价的适配器 对于连续数据的数组。这个库中的类实现了一个 通用接口,形式化为通用编程概念。这 界面设计符合C++标准的先例 图书馆容器。 Boost MultiArray 是一种更高效且 比现有表达 N 维数组更方便的方法 替代品(尤其是 std::vector> 公式 N 维数组)。库提供的数组可能是 使用熟悉的原生 C++ 数组语法访问。额外的 调整大小、重塑和创建视图等功能 可用(如下所述)。

来源:http://www.boost.org/doc/libs/1_48_0/libs/multi_array/doc/user.html

【讨论】:

  • -1:当问题是关于序列化时,您复制粘贴了有关一般主题的文本。
  • 公平地说,我认为问题是要求数据结构,而不是(反)序列化 - 虽然它很模棱两可。
  • @Potatoswatter 问题是关于多维数组,Boost 库涵盖的主题。
猜你喜欢
  • 1970-01-01
  • 2013-03-21
  • 2014-06-20
  • 2016-12-07
  • 2023-03-20
  • 1970-01-01
相关资源
最近更新 更多