C++ 5维向量?

Lea*_*_51 3 c++ programming-languages vector visual-studio-2008

我试图制作一个5维向量,我似乎无法让它工作.我知道如果我需要编写一个三维向量,我可以用以下方式编写它: vector< vector< vector<string> > > block(27, vector< vector<string> > (27, vector<string>(27)));

然后我称之为: block[x][y][z] = “hello”;

我用以下方式编写了5维向量,它给了我错误. vector< vector< vector< vector< vector<string> > > > > block(27, vector< vector< vector< vector<string> > > >(27, vector< vector< vector<string> > >(27, vector< vector<string> >(27, vector<string>(27)))));

你能告诉我如何以正确的方式写出5维矢量吗?非常感谢.

Mar*_*ork 6

5维数组中的最终向量没有类型的数组.

vector< vector< vector< vector< vector > > > > 
                                     ^^
                                     Here. What is the base vector a vector off?
Run Code Online (Sandbox Code Playgroud)

为了使事情易于阅读,几个typedef会很好:

typedef std::vector<std::string>     Dim1;
typedef std::vector<Dim1>            Dim2;
typedef std::vector<Dim2>            Dim3;
typedef std::vector<Dim3>            Dim4;
typedef std::vector<Dim4>            Dim5;

Dim5 block(27, Dim4(27, Dim3(27, Dim2(27, Dim1(27)))));
Run Code Online (Sandbox Code Playgroud)


car*_*org 6

考虑将Boost多维数组库用于更高维数组.

http://www.boost.org/doc/libs/1_43_0/libs/multi_array/doc/user.html

"Boost MultiArray是一种比现有替代方案(尤其是n维数组的std :: vector>公式)更快捷方便地表达N维数组的方法.可以使用熟悉的原生语法访问库提供的数组. C++数组.可以使用其他功能,例如调整大小,重新整形和创建视图(并在下面介绍)."