![]() |
clonar o duplicar Lista C++
Hola Amigos del foro.
tengo un problemita... (ó quizas un problema grande):confused: tengo una listaPersonas y esta asociada a una listaAsociaciones, la primer lista hace referencia a la segunda, donde me dice con quien esta asociada esta ListaPersonas[item]. Cada vez q se inicializa listapersona obtiene un numero aleatoria unico, para cada item's. Entonces, ahora lo que quiero hacer es hacer una copia o un clon de estas listas y llamarla listaPersonas2 y listaAsociaciones 2 y usarla para ensayos y despues compararlas. ¿es posible hacer esto,de manera que reasigne los punteros de referencia y no me de error? opcion que se me ocurrio: (1)pasar la informacion a txt y a partir de ello rearmar las listas , pero existe el problema que toma mucho tiempo si son mas de 1000 elementos. (2) preguntar, quizas existe una funcion que lo haga solo. Muchas gracias, por su colaboración. pd: si no se entedio , lo vuelvo a redactar. Gracias |
Y esas listas ¿que son?. Arrays de punteros char**, objetos TList...
Saludos. |
hola escafandra, gracias por ayudarme
si tenes razon no di muchas especificaciones, son Tlist de objetos. gracias |
TList es una clase que simplemente guarda una lista de punteros. Si copias los punteros, no duplicas la lista, pues apuntan al mismo sitio y si destruyeras el original, la copia se corrompe (sus puntero no apuntan a nada válido).
Debes realizar una copya de cada objeto apuntado. Te muestro un ejemplo con cadenas: Código:
TList *List1 = new TList; |
Hola Escafandra, muchas gracias, por responder
Te cuento la idea es literalmente copiar la lista, y no hacer una copia de la lista de los punteros. "Seria como ejecutar 2 veces el mismo ejecutable, pero que los ejecutables tengan las mismos valores de las variables y que los punteros sean distintos, de manera de poder usar la lista copia para hacer ensayos ó pruebas (independientes)" No se si esto es posible, por eso proponia de los txt, de manera que me devuela la posicion de cada item de la lista y me diga hacia donde apunta de la segunda lista (La cosa es q me consume demasiado tiempo bajar a disco y subir). Muchas gracias, BC++ |
Lo que te ha recomendado escafandra es lo más adecuado hacer, es decir copiar cada elemento de la lista a tu nueva lista destino.;)
Cabe mencionar que la Clase TList cuenta con un método que te hace todo: Saludos...:) |
La pega está en que el método TList::Assign no es incorporado al Builder hasta la versión 6. Los que usen la 5 no lo podrán usar, teniendo que realizar la copia manual (que es bien sencilla)
;):) Saludos. |
Muchas gracias!, lo pruebo y les aviso :D
Saludos,BC++ |
| La franja horaria es GMT +2. Ahora son las 22:32:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi