gpt4 book ai didi

c++ - Boost.MultiArray 初学者 : How to get a 4D-Array with dynamic inner-array-sizes?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:49 24 4
gpt4 key购买 nike

我想存储某种距离矩阵 (2D),其中每个条目都有一些替代项(不同的坐标)。所以我想访问距离,例如 x=1 和 x_alt=3 和 y=3 和 y_alt=1,用 array[1][3][3][1] 查看 4-dim 多数组。

需要注意以下重要事项:对于外部数组/vector 的不同值,2 个最内部数组/vector 的大小不同。

在我计算值的第一个初始化步骤之后,不再需要修改!

这应该可以通过使用 STL-vectors 轻松实现:

vector<vector<vector<vector<double> > > >`extended_distance_matrix;

我可以在其中动态迭代外部 2 维,并仅根据需要填充尽可能多的内部 2 维(例如,使用 push_back())。

问题:

  • Boost.MultiArray 可以定义这种数据结构吗?怎么样?
  • 使用 Boost.MultiArray 代替嵌套 vector 是个好主意吗?性能(尤其是查找!(内存布局))?易于使用?

感谢任何输入!

sascha

PS:boost 文档对我没有帮助。也许可以使用 multi_array_ref 将已经确定大小的数组放入整个 4D 结构中?

编辑:目前我正在考虑另一种方法:展平备选方案 ->一个更大的矩阵,其中包含备选方案之间的所有距离。然后我只需要计算每个节点的备选方案数量,建立前缀和(描述矩阵位置/移位),然后可以通过两步方式访问信息。

但我的问题仍然悬而未决。

最佳答案

听起来你需要:

multi_array<ublas::matrix<type>,2>

关于c++ - Boost.MultiArray 初学者 : How to get a 4D-Array with dynamic inner-array-sizes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4053550/

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