[C con Clase] Vector de tamaño indef, definido en metodo.

Gilberto Cuba Ricardo gilberto.cuba en ucp.ho.rimed.cu
Jue Nov 18 16:07:03 CET 2010


Hola Jorge,

Jorge Vega Sanchez escribió:
> Buenas a todos.

> A ver el problema que tengo es:
> - Tengo que definir un vector y array en el programa principal pero
> no se su tamaño. Si se el tipo del array.

Bueno, lo de vector y array a la misma vez no lo tendría muy bien
claro. Pero de un vector solo tal vez pudiéramos hacer algo, sin
embargo con un array sólo, me temo que no pudiera ayudarte si te estás
refiriendo a la librería estándar del c++, y sino que me corrijan los
que están mas duchos en esta temática, pero creo que lo del array
viene con el nuevo c++0x.

Entonces vamos a lo que nos ocupa. Lo primero es hacer referencia a la
librería que contiene las definiciones que vamos a usar, en nuestro
caso la de vector en la estándar, y luego usamos el espacio de nombres
donde se definen los elementos de esta librería.

#include <vector>

using namespace std;
...

Luego en el programa principal, hacemos una declaración de un objeto
de la clase vector como veremos a continuación y de ahí, bueno, a
seguir para adelante. :)

...
int
main()
  {
    ...

    typedef int mytype;

    // en esta parte lo que está entre <>,
    // es el tipo que dices que conoces.
    vector <mytype> my_new_vector;

    // reservamos el espacio según el tamaño del tipo
    // y la cantidad de elementos que no conozco de forma
    // predeterminada
    my_new_vector.reserve( N * sizeof(mytype) );

    // y entonces se accede a los elementos del vector de la forma
    my_new_vector[0] = 2;
    my_new_vector[1] = 12;
    my_new_vector[2] = 22;
    ...

    // o algo similar con
    my_new_vector.resize( N );
    my_new_vector[0] = 2;
    my_new_vector[1] = 12;
    my_new_vector[2] = 22;

    // o también no definir ni "reserve", ni "resize" y dejarlo
    // abierto para ir agregando información al final del vector
    my_new_vector.push_back( 32 );
    my_new_vector.push_back( 42 );

    return 0;
  }

> - El tamaño y sus componentes se definen en un metodo/arreglo/procedimiento.

No entiendo qué preguntas aquí.

> Estoy probando formas pero de momento todas me dan error.

Si no es esto lo que preguntabas, pues entendí mal y olvida lo que
puse. Cualquier otra duda, no dudes en preguntarla.

> Un saludo y gracias de antemano.

-- 
Saludos,
 Gilberto Cuba Ricardo





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