簡體   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