繁体   English   中英

C ++-数组的动态指针

[英]C++ - dynamic pointer of array

首先,我想说我是C ++的新手。

作为我的硕士论文的一部分,我正在用C ++编写程序,该程序也将变量md (均为整数)作为参数。 d是2的幂(这意味着2^d元素)。 参数m定义了一个元素与整个组( 2^d元素)之间可能发生的相互作用的数量。

可能交互的数量计算如下:

\kappa = \sum_{i=0}^m\binom{d}{i}

(目前,我为2^d x \\ kappa生成矢量的矢量,但是我的教授希望我为不同的m创建不同的统计量。我的第一个操作是生成由m大小不同的m数组组成的动态数组。 ..然后,尽管我要用最大的2d数组定义一个3-dim数组,但是编程速度也很重要(例如d = 20 )。

我想征询您的建议,如何定义这种动态数组也将很快。

问候

使用Boost多维数组

http://www.boost.org/doc/libs/1_41_0/libs/multi_array/doc/index.html

例如看这段代码。 这很容易

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM