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