[C con Clase] Array dinámico en C++ estándar

User usuarioanonimomysql en gmail.com
Mar Mayo 1 20:21:13 CEST 2012


Hola de nuevo,

He realizado este pequeño programa para probar la alternativa que no usa
clases plantillas:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>

using namespace std;

int main()
{
    double *pDoubles = NULL;
    int nCant = 0;

    // Aumentamos el array
    pDoubles = (double *) realloc( pDoubles, ++nCant * sizeof(double) );

    ifstream ifs( "datos.txt" );
    ifs >> pDoubles[nCant-1];

    // Aumentamos el array
    pDoubles = (double *) realloc( pDoubles, ++nCant * sizeof(double) );
    ifs >> pDoubles[nCant-1];
    for (int i(0); i < nCant; i++){
        cout << pDoubles[i] << endl;
    }
    return 0;
}

Imaginemos ahora que necesito que el array de doubles sea bidimensional, es
decir, sabemos que va a tener dos columnas, pero un número indeterminado de
filas.

¿Cómo podría implementarlo?

Saludos.

El 30 de abril de 2012 22:35, Steven Davidson <srd4121 en njit.edu> escribió:

> Hola User,
>
>
> On 4/30/2012 4:22 PM, User wrote:
>
>> Hola Steven,
>>
>> Me voy a decantar por utilizar la clase-plantilla dinámica vector, ya
>> que según comentas es la forma más optimizada.
>>
>>
> Bueno, no es la más optimizada, pero sí es segura, porque ya viene hecha y
> ha sido probada muchas veces. Internamente, 'vector' usa un array que va
> aumentando en tamaño según se necesite. La clase plantilla 'list' usa una
> lista dinámicamente enlazada, así que es más fácil de insertar y eliminar
> elementos en la lista, porque crea cada elemento por separado y luego
> vincula cada uno, como eslabones en una cadena.
>
>
>  ¿Necesito incluir algún fichero de cabecera para que reconozca la
>> clase-plantilla dinámica vector?
>>
>>
> Se encuentra en <vector>; así que escribe,
>
> #include <vector>
>
> using namespace std;
>
>
>  Saludos y gracias por la rápida respuesta.
>>
>>
> De nada; para eso estamos :)
>
>
> Hasta pronto,
>
>
> Steven
>
>
> ______________________________**_________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/**mailman/listinfo/cconclase_**
> listas.conclase.net<http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net>
> Bajas: http://listas.conclase.net/**index.php?gid=2&mnu=FAQ<http://listas.conclase.net/index.php?gid=2&mnu=FAQ>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120501/0b217aa8/attachment.html>


Más información sobre la lista de distribución Cconclase