Programación General => C/C++ => Mensaje iniciado por: enyell en Domingo 27 de Julio de 2008, 22:09
Título: Contenedores y estructuras
Publicado por: enyell en Domingo 27 de Julio de 2008, 22:09
Hola !!!
Necesito alguna pista-ayuda porque le he dado mil vueltas y no consigo encontrar la solución... :wacko:
Estoy haciendo una simulación de enrutamientos IP con un programa de software libre llamado Omnet que está basado en C++. Cada router tiene que construir su propia tabla de enrutamiento en función de los datos que sus vecinos le van pasando.
En un principio utilicé un contenedor de tipo "map<int,int>" para almacenar los datos de la tabla y que me los relacionase : destino- puerto de salida para alcanzar ese vecino. Pero tengo que añadir otro argumento y que me lo relacione con los dos anteriores, y el contenedor "map" solo relaciona datos por parejas. Es decir, necesito que me asocie los tres datos:
destino - puerto de salida - métrica
Intenté que funcionase haciendo que uno de los argumentos del contenedor map fuese una estructura:
Pero al construir la tabla de enrutamiento según le van llegando datos al router la estructura machaca los anteriores y los sobrescribe:
Debería ser así: TABLA ENRUTAMIENTO----- ROUTER : router[1] DIRECCION DESTINO : 4 ID DEL PUERTO DE SALIDA : 7 METRICA:1
TABLA ENRUTAMIENTO----- ROUTER : router[1] DIRECCION DESTINO : 4 ID DEL PUERTO DE SALIDA : 7 METRICA:1 DIRECCION DESTINO : 6 ID DEL PUERTO DE SALIDA : 8 METRICA:1
TABLA ENRUTAMIENTO----- ROUTER : router[1] DIRECCION DESTINO : 4 ID DEL PUERTO DE SALIDA : 7 METRICA:1 DIRECCION DESTINO : 6 ID DEL PUERTO DE SALIDA : 8 METRICA:1 DIRECCION DESTINO : 8 ID DEL PUERTO DE SALIDA : 9 METRICA:1
Y sin embargo el resultado es: TABLA ENRUTAMIENTO----- ROUTER : router[1] DIRECCION DESTINO : 4 ID DEL PUERTO DE SALIDA : 7 METRICA:1
TABLA ENRUTAMIENTO----- ROUTER : router[1] DIRECCION DESTINO : 4 ID DEL PUERTO DE SALIDA : 8 METRICA:1 DIRECCION DESTINO : 6 ID DEL PUERTO DE SALIDA : 8 METRICA:1
TABLA ENRUTAMIENTO----- ROUTER : router[1] DIRECCION DESTINO : 4 ID DEL PUERTO DE SALIDA : 9 METRICA:1 DIRECCION DESTINO : 6 ID DEL PUERTO DE SALIDA : 9 METRICA:1 DIRECCION DESTINO : 8 ID DEL PUERTO DE SALIDA : 9 METRICA:1
No sé como podría construir esta tabla de enrutamiento asociando los tres datos y sin que los datos de la estructura no se sobrescribieran según vaya llegando la nueva información...