Estoy empezando a aprender C++ así que discúlpeme por esta simple pregunta. Lo que estoy haciendo es leer en números de un archivo y luego tratar de agregarlos a una matriz. Mi problema es ¿cómo se aumenta el tamaño de la matriz? Por ejemplo pensé que podría ser capaz de simplemente hacer:Arrays dinámicos
#include <iostream>
using namespace std;
int main() {
double *x;
x = new double[1];
x[0]=5;
x = new double[1];
x[1]=6;
cout << x[0] << "," << x[1] << endl;
return 0;
}
Pero esto, obviamente, sólo sobrescribe el valor, 5, que en un principio me puse a x [0] y así da salida a 0,6. ¿Cómo lo haría para que salga 5,6?
Por favor, tenga en cuenta que para el ejemplo que he incluido no quise saturarlo con el código que se lee de un archivo o código para obtener números de un usuario. En la aplicación real, no sabré cuán grande es el arreglo que necesito en el momento de la compilación, así que no me digan que haga una matriz con dos elementos y configúrelos igual a 5 y 6 respectivamente.
Gracias por su ayuda.
Sin embargo, debes tener cuidado con los vectores, ya que tienden a ser bastante lentos en el uso. – Huppie
Lento es relativo. es decir, perfila tu programa y ve si impacta las cosas. Si lo hace, escriba un asignador personalizado, optimizado para asignar dobles (y objetos de tamaño 'sizeof (double)'). –
No será más lento que hacer el cambio de tamaño con nuevo, eliminar y copiar. –