动态嵌套列表

时间:2013-12-17 19:04:14

标签: c++ list dynamic nested

嵌套列表是列表列表。

std::list<std::list<int> > nestedList;

如何创建多维深度动态列表?例如,用户输入数字3,然后动态创建三维深度嵌套列表(列表列表列表......)? 我知道如何声明手册,但我需要动态创建它。

2 个答案:

答案 0 :(得分:0)

对于像这样的简单问题,我的首选方法是分配一个向量并通过索引处理维度。

例如,大小为WxH的2D数组为std::vector<int> v(W*H);

然后使用int& get(int x, int y){ return v[y * W + x]; }

访问它

您可以将此模式扩展为任意数量的维度,但根据您的问题,它可能不合适。认为这是一个选择。

答案 1 :(得分:0)

你可以:

  • 预定义维度的有效数量,以便可以编译所有维度。然后使用开关和模板化函数。

  • 写一个新的n-d列表类。

构造函数将按以下方式调用:

size_t dimensions(3);
ndList<int> myNDList(dimensions);