Bir std::vector<double>
öğesini bir double array[]
öğesine nasıl dönüştürebilirim?
Bunu yapmak için oldukça basit bir hile var, çünkü spesifikasyon artık garanti ediyor vektörler elemanlarını bitişik olarak saklar:
std::vector<double> v;
double* a = &v[0];
vector<double> thevector;
//...
double *thearray = &thevector[0];
Bunun çalışması standart tarafından garanti edilmiştir, ancak bazı uyarılar vardır: özellikle thevector
kapsam dahilindeyken sadece thearray
kullanmaya dikkat edin.
Vektörler etkin bir şekilde deri altındaki dizilerdir. Eğer bir fonksiyonunuz varsa:
void f( double a[]);
şöyle diyebilirsiniz:
vector <double> v;
v.push_back( 1.23 )
f( &v[0] );
Bir vektörü gerçek bir dizi örneğine dönüştürmeniz gerekmez.