【发布时间】:2013-12-12 03:19:45
【问题描述】:
我最初问过 using nested std::array to create an multidimensional array without knowing dimensions or extents until runtime 但这有 The XY Problem 试图用 std::array 完成它。
问题 One-line initialiser for Boost.MultiArray 和 How do I make a multidimensional array of undetermined size a member of a class in c++? 及其答案提供了一些有用的信息,如何使用 Boost::MultiArray 避免在运行时需要知道维度的范围,但未能演示如何拥有一个类成员可以存储一个数组(在运行时创建),其维度和范围直到运行时才知道。
【问题讨论】:
-
你的意思是在编译时维度的数量是未知的,还是有N个维度的未知大小?
-
据我所知(快速查看 boost 文档),您可以按照我的预期简单地指定构造函数中的所有内容
-
如果您查看我第一次尝试的解决方案:stackoverflow.com/a/20207616/2963099,然后为构造函数保留一个维度向量和可变参数,您应该知道如何做到这一点
-
@ZacHowland 我的意思是维度的数量以及它们的范围(大小)在运行时都是未知的。
-
格伦的回答将解决您的问题(坦率地说,这是唯一想要解决的问题),但听起来您仍然遭受 XY 问题的困扰。为什么您认为需要动态数量的维度?
标签: c++ c++11 multidimensional-array