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

Miguel Ángel Torres Fernández-Píñar miguelangeltorresfp en gmail.com
Dom Jul 20 10:41:33 CEST 2014


No sé, igual tendría que usar el constructor copia para crearme la variable
local.

De momento en mi clase Objeto no tengo definido este tipo de constructor y
sobrecarga de operador.

No sé si será la única solución.


El 20 de julio de 2014, 10:40, Miguel Ángel Torres Fernández-Píñar <
miguelangeltorresfp en gmail.com> escribió:

> Buenos días Jose Roberto y muchas gracias por tu respuesta.
>
> Supongo que en tu ejemplo tendría que ser :
>
> nuevo.push_back(obj);
> vec.erase(it);
>
> Creo que lo pusistes al revés de cómo me decías, no ???
>
> Profundizo un poco más en el problemas.
> En los contenedores estoy guardando objetos del tipo :
> Shared_Ptr<Obj> . Pero usando una clase punteros de mi profe, no la que
> viene con C++ 11.
> Así que creo que no me sirve lo de crearme una variable local porque de
> igual modo, al estar todo esto metido en un método, al final del método se
> destruye todo.
>
> Uf, no sé, estoy hecho un lío, pero sí, el tema va por donde tú dices Jose
> Roberto.
>
> Muchas gracias.
>
>
> El 20 de julio de 2014, 5:43, Jose Roberto <joser1993 en gmail.com> escribió:
>
> 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
>>
>> _______________________________________________
>> 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
>>
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140720/5d50e987/attachment.html>


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