Como posso converter um std::vector<double>
para um double array[]
?
vector<double> thevector;
//...
double *thearray = &thevector[0];
Isto é garantido pelo padrão, contudo existem algumas advertências: em particular, ter o cuidado de apenas utilizar "o raio" enquanto "o vector" está no âmbito.
Os vectores são efectivamente matrizes sob a pele. Se tiver uma função:
void f( double a[]);
pode chamar-lhe assim:
vector <double> v;
v.push_back( 1.23 )
f( &v[0] );
Não deverá nunca precisar de converter um vector numa instância de matriz real.