Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con vectores c++

Estas en el tema de Problema con vectores c++ en el foro de C/C++ en Foros del Web. Hola!! Me gustaría saber cómo puedo copiar un vector entero en otro vector, es decir, hacer una copia. Por ejemplo, si tngo el vector A=[1,2,3,4] ...
  #1 (permalink)  
Antiguo 28/03/2006, 03:28
 
Fecha de Ingreso: enero-2004
Mensajes: 75
Antigüedad: 21 años
Puntos: 0
Problema con vectores c++

Hola!!
Me gustaría saber cómo puedo copiar un vector entero en otro vector, es decir, hacer una copia. Por ejemplo, si tngo el vector A=[1,2,3,4] y el vector B=[], quiero saber cómo puedo lograr que B=A, es decir que B=[1,2,3,4], aqui os dejo la parte del codigo por si hay algo mal. Lo que quiero hacer es una copia de todo el vector de una sola vez y no copiando posicion a posición.

Código HTML:
void cj_enteros::intersectar(const cj_enteros& B) {
      //int vaux[MAXSIZE];
    int j=0;
    bool trobat = false;
    int i = 0;
    int vaux[MAXSIZE];
    int r=0;
    //recorre el primer vector
    while (i<contador){
        trobat = false;
        j=0;
        //recorre el segundo vector
        while(j<B.contador && !trobat){
            cout << "ca[i] es " << ca[i] << endl;
            cout << "ca[j] es " << B.ca[j] << endl;
            if(ca[i]==B.ca[j]){
                //if(pl<MAXSIZE){
                    cout << "Son iguals " << endl;
                    cout << " " << endl;
                    cout << "ca[i] es " << ca[i] << endl;
                    vaux[r]=ca[i];
                    trobat = true;
                    r++;
                    cout << " r es " << r << endl;
                    cout << "vaux[r] es " << vaux[r] << endl;
                //}else{
                //    cout << "Vector Ple " << endl;
                //}
            }
            j++;
            cout << "j es " << j << endl;
        }
        i++;
        cout << "i es " << i << endl; 
    }
    *ca = *vaux;
    ordenar(vaux);
  }
__________________
Gracias y un saludo
  #2 (permalink)  
Antiguo 28/03/2006, 20:02
 
Fecha de Ingreso: octubre-2005
Ubicación: Montevideo, Uruguay
Mensajes: 14
Antigüedad: 19 años, 3 meses
Puntos: 0
No existe eso de copiar todo de una sola vez, hay que copiar elemento a elemento.

Primero tenes que reservar memoria con malloc o new para el nuevo vector, luego recorrer el primero y copiar posicion a posicion al segundo.
  #3 (permalink)  
Antiguo 26/04/2006, 07:46
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 8 meses
Puntos: 2
exacto en C++ no existe la copia de vectores en su totalidad.
puedes hacer que un puntero apunter a un vector existente.
esto te permitiria una compia por referencia de tu vector pero al modificra uno se modifican los dos vectores.

la solucion por valor es la copia miembro a miembro.

for(int i = 0;i < sizevector;i++)vectorB[i] = vectorA[i];
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:02.