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维矢量吗?非常感谢.
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)
考虑将Boost多维数组库用于更高维数组.
http://www.boost.org/doc/libs/1_43_0/libs/multi_array/doc/user.html
"Boost MultiArray是一种比现有替代方案(尤其是n维数组的std :: vector>公式)更快捷方便地表达N维数组的方法.可以使用熟悉的原生语法访问库提供的数组. C++数组.可以使用其他功能,例如调整大小,重新整形和创建视图(并在下面介绍)."
| 归档时间: |
|
| 查看次数: |
919 次 |
| 最近记录: |