Wie konvertiere ich einen std::vector<double>
in ein double array[]
?
Es gibt einen ziemlich einfachen Trick, dies zu tun, da die Spezifikation nun garantiert, dass Vektoren ihre Elemente zusammenhängend speichern:
std::vector<double> v;
double* a = &v[0];
vector<double> thevector;
//...
double *thearray = &thevector[0];
Der Standard garantiert, dass dies funktioniert, allerdings gibt es einige Vorbehalte: insbesondere sollte man darauf achten, thearray
nur zu verwenden, wenn thevector
im Geltungsbereich ist.
Vektoren sind quasi Arrays unter der Haut. Wenn Sie eine Funktion haben:
void f( double a[]);
kann man sie wie folgt aufrufen:
vector <double> v;
v.push_back( 1.23 )
f( &v[0] );
Sie sollten niemals einen Vektor in eine Array-Instanz umwandeln müssen.