我需要存储一些二维数据数组,尺寸是固定的并且在运行时已知。是否有 array<T>
的二维等价物模板(在 std 库或 boost 中)?
最佳答案
#include "boost/multi_array.hpp"
#include <cassert>
int
main () {
// Create a 3D array that is 3 x 4 x 2
typedef boost::multi_array<double, 3> array_type;
typedef array_type::index index;
array_type A(boost::extents[3][4][2]);
// Assign values to the elements
int values = 0;
for(index i = 0; i != 3; ++i)
for(index j = 0; j != 4; ++j)
for(index k = 0; k != 2; ++k)
A[i][j][k] = values++;
// Verify values
int verify = 0;
for(index i = 0; i != 3; ++i)
for(index j = 0; j != 4; ++j)
for(index k = 0; k != 2; ++k)
assert(A[i][j][k] == verify++);
return 0;
}
关于c++ - C++中二维数组的标准实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26639413/