Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - PROBLEMI CON INSERIMENTO ELEMENTI IN map<string, map<string,float> >
Forum - C/C++ - PROBLEMI CON INSERIMENTO ELEMENTI IN map<string, map<string,float> >

Avatar
dim (Normal User)
Newbie


Messaggi: 3
Iscritto: 12/04/2012

Segnala al moderatore
Postato alle 10:54
Giovedì, 12/04/2012
Salve, vorrei sapere se qualcuno può aiutarmi.

ho una multimap<string, map<string, float> > e voglio inserire elementi nella nested multimap. Se inserisco così:

typedef map<string, map<string,float> > mymap;
    mymap m;
m["Hello"]["World"]=78;

funziona tutto. Il problema é se non ho direttamente la stringa, ma ce l'ho dentro una variabile. Cioé vorrei sapere, come faccio a usare il metodo insert  che con una mappa normale sarebbe

map<string, float> m1;
string parola="io";
float num=89;
m1.insert(make_pair(parola,num));

con una nested map?? Ho provato in varie maniere ma mi dà sempre errore.....

Grazie!!!

PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 15:39
Giovedì, 12/04/2012
Non ho capito bene il problema, sarebbe il fatto che non hai direttamente la stringa? puoi fare anche così eh
Codice sorgente - presumibilmente C/C++

  1. typedef map<string, map<string,float> > mymap;
  2.     mymap m;
  3. m[stringa1][stringa2] = var;


Se vuoi usare make_pair, basta che il secondo parametro sia del tipo map<string,float> e il primo di tipo string.

Piuttosto, che devi farci con quella struttura? Mi pare un po' troppo pompata.

PM Quote
Avatar
dim (Normal User)
Newbie


Messaggi: 3
Iscritto: 12/04/2012

Segnala al moderatore
Postato alle 17:57
Giovedì, 12/04/2012
Devo fare un classificatore di parole con algoritmo Naive Bayes ed ho bisogno di una struttura che mi memorizzi:
argomento del documento, parola->numero occorrenze.
Quindi ho bisogno di una multimap <string argomento, map<string parola, float numero occorrenze> >

Il problema é che quell'inserimento suggerito da te funziona per la map(scusami nel messaggio sopra ho scritto prima multimap e poi map), ma non funziona per la multimap....come faccio?? Hai altri suggerimentI???


Grazie!!!!

PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 16:01
Venerdì, 13/04/2012
Devi usare perforza insert.
http://ideone.com/vU4Lr

L'oveload di [] non può funzionare perchè multimap potrebbe ritornare più valori per una stessa una stessa search key.

PM Quote
Avatar
dim (Normal User)
Newbie


Messaggi: 3
Iscritto: 12/04/2012

Segnala al moderatore
Postato alle 10:46
Domenica, 15/04/2012
Grazie!

PM Quote