001
19.09.2009, 17:33 Uhr
0xdeadbeef
Gott (Operator)
|
Mit std::vector würd ich das wohl so machen:
C++: |
std::vector<std::vector<std::vector<float> > > v(x, std::vector<std::vector<float> >(y, std::vector<float>(y)));
|
bzw. der Lesbarkeit halber mit typedefs:
C++: |
typedef std::vector<float> f_vec_t; typedef std::vector<f_vec_t> f_vec_2d_t; typedef std::vector<f_vec_2d_t> f_vec_3d_t;
f_vec_3d_t v(x, f_vec_2d_t(y, f_vec_t(y)));
|
Allerdings...wenn es sich um Rechteckarrays handelt und du die Größe der Arrays nachher nicht mehr ändern musst, würde ich eher Boost.MultiArray benutzen. Das sähe dann so aus:
C++: |
#include <boost/multi_array.hpp>
// ...
boost::multi_array<float, 3> array(boost::extents[x][y][y]);
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |