C++中二维数组的标准实现



我需要存储一些二维数据数组,这些维度是固定的,并且在运行时是已知的。是否有array<T>模板的2D等价物(在std库或boost中)?

Google:Boost.MultiArray

#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;
}

最新更新