[英]C++ - dynamic pointer of array
首先,我想說我是C ++的新手。
作為我的碩士論文的一部分,我正在用C ++編寫程序,該程序也將變量m
和d
(均為整數)作為參數。 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.