gpt4 book ai didi

c++ - 我可以从 boost::multi_array 获取 T**(c 样式二维数组) 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 01:53:06 25 4
gpt4 key购买 nike

因为我想使用 boost::multi_array<>,同时,遗留库需要 c 风格的二维数组。

最佳答案

T ** 不是 C 风格的数组。内置的 C 风格数组是通过覆盖在普通一维数组上的索引重新计算技术实现的。

T **将是一个手动实现的“多级”二维数组。这种二维数组使用两级实现,第一级数组是指向包含实际数据的第二级数组的指针数组。这是一种完全不同的方法,与内置数组不兼容。

boost::multi_array<T, 2> 使用的内存布局与内置 C 样式数组相同,即它是一个通过索引重新计算“假装”为二维的一维数组。您不能“提取” T ** -style 数组,因为 boost::multi_array 中根本不存在二级内存结构.

这实际上提出了一个问题,即您的遗留库需要哪种数组:T **样式数组或 C 样式数组,因为它们不相同。

关于c++ - 我可以从 boost::multi_array<T, 2> 获取 T**(c 样式二维数组) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11571293/

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