[C con Clase] Saludos !!! - Cómo eliminar objetos de vector y agregarlos a otro vector.

Jose Roberto joser1993 en gmail.com
Dom Jul 20 05:43:39 CEST 2014


Probablemente estes usando el mismo objeto que tiene el iterador que
recorre el primer vector y estes eliminando el contenido del iterador antes
de agregar el objeto al segundo vector. Es decir, que estes eliminando el
objeto una vez que lo eliminas del vector. Si este es el caso, considera
guardar el objeto en una variable auxiliar y usala para agregar ese objeto
al segundo vector, eso seria lo mas didactico. Pero lo considerable es que
si consigues un objeto que debas agregar al otro vector, se deberia agregar
primero el objeto y despues eliminarlo del vector original.

Espero que con este codigo se entienda un poco mas la idea

#include <vector>
#include <iostream>

using namespace std;


int main(){
vector<int> vec;
        for(int i=0; i<6; i++){
                vec.push_back(i);
        }

vec<int> nuevo;
        vec<int>::iterator it;
        int obj; // Este ejemplo consideremoslo como objetos tipo int
        for(it=vec.begin(); it!=vec.end();it++){
                obj=*it;
                if(obj%2==0){
                        vec.erase(it);
                        nuevo.push_back(obj);
                }
        }

for(it=nuevo.begin(); it!=nuevo.end(); it++){
                cout<<*it<<endl;
        }
}

Saludos


El 19 de julio de 2014, 20:36, Facundo Curti <facu.curti en gmail.com>
escribió:

> El día 19 de julio de 2014, 23:16, Miguel Ángel Torres Fernández-Píñar
> <miguelangeltorresfp en gmail.com> escribió:
> > Hola, saludos a todos.
> >
> > Recorre un contenedor de objetos mediante iteradores.
> >
> > Elimino sin problemas un elemento de este contenedor.
> >
> > Pero mi problema viene cuando quiero agregar justo este elemento a otro
> > contenedor.
> >
> > No sé cómo hacer esto.
> >
> > Se agrega pero luego el programa falla por algún problema de memoria.
> >
> > No sé si con estos datos del problema es suficiente.
> >
> > Gracias y saludos !!!
> >
> > _______________________________________________
> > Lista de correo Cconclase Cconclase en listas.conclase.net
> >
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
> Seria bueno que subieras el código para que podamos ayudarte.
> Seguramente estas escribiendo fuera de los limites. No puedes guardar
> 2 litros de agua en una botella de 500cc. Seguramente lo mismo estas
> haciendo con el arreglo. De ser así, tendrías que ver de asignarle
> memoria con malloc.
> Repito, seria bueno que colocaras el código, así podremos ayudarte.
>
> Saludos! ;)
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
José Roberto
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140719/d41d96db/attachment.html>


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