如何在具有用户指定长度的方法中创建一个数组?我想用给定长度的用户用随机数填充向量。

 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类的成员,该成员将在此函数的主体中初始化,并带有一些用户给定的值-不可能,因为在数组中分配的空间应为常数。怎么处理?

亲切的问候。

最佳答案

在C ++中,应该使用vector类:

std::vector<double> rd;
for(int i=0;i<m_N;i++) rd.push_back(r[i]);

10-02 06:47