Cómo convertir un vector en una matriz

Resuelto ganuke asked hace 14 años • 10 respuestas

¿ Cómo convierto a std::vector<double>en a double array[]?

ganuke avatar May 28 '10 00:05 ganuke
Aceptado

Hay un truco bastante sencillo para hacerlo, ya que la especificación ahora garantiza que los vectores almacenen sus elementos de forma contigua:

std::vector<double> v;
double* a = &v[0];
Michael Mrozek avatar May 27 '2010 17:05 Michael Mrozek

¿Para qué? Es necesario aclarar: ¿Necesita un puntero al primer elemento de una matriz o una matriz?

Si está llamando a una función API que espera lo primero, puede hacerlo do_something(&v[0], v.size()), donde vhay un vector de doubles. Los elementos de un vector son contiguos.

En caso contrario, sólo debes copiar cada elemento:

double arr[100];
std::copy(v.begin(), v.end(), arr);

Asegúrese de que no solo arrsea lo suficientemente grande, sino que también arrse llene o tenga valores no inicializados.

GManNickG avatar May 27 '2010 17:05 GManNickG