Hola !!!
Necesito alguna pista-ayuda porque le he dado mil vueltas y no consigo encontrar la solución...
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étricaIntenté que funcionase haciendo que uno de los argumentos del contenedor map fuese una estructura:
struct datostabla
{ int metrica;
int idpuerto;
}dtabla;
typedef std::map<int, datostabla>TablaEnrutamiento;
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...
Muchas gracias!!!
Salu2