ユーザーが指定した長さのメソッドで 1 つの配列を作成する方法は? ユーザーが指定した長さのベクトルを乱数で埋めたいと思います。
double* Random::quasiRandomUnif(float a, float b, int NN)
{
int i, errcode;
N_=NN; // here initialize the member N_
float r[N_];
VSLStreamStatePtr stream;
int i, errcode;
errcode = vslNewStream( &stream, BRNG, SEED );
errcode = vsRngUniform( METHOD, stream, N_, r, a, b );
double* rd = new double[m_N];
for(int i=0;i<m_N;i++)
rd[i]=(double)r[i];
errcode = vslDeleteStream( &stream );
return rd;
}
N_ はクラス Random のメンバーであり、この関数の本体で初期化され、ユーザーが指定した値であると考えました。配列に割り当てられたスペースは定数でなければならないため、不可能です。対処方法?
敬具。