Repository 32bit  Forum
Repository 64bit  Wiki

c++ lista dentro map problema

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

c++ lista dentro map problema

Messaggioda rfringuello89 » mar mag 07, 2013 9:29

Salve a tutti, mi sto affacciando nel mondo c++. Per risolvere un problema ho una map di oggetti Foo i quali contengono al loro interno una lista di altri oggetti Custom diversi dai precedenti.
Per intenderci:
.....
class Foo{
.....
private:
std::list <Custom> lista;
.....
};
....
main(){
...
std::map<string, Foo> mappa;
...
};

Il mio problema è nell'aggiunta di elementi alle varie liste degli elementi Foo infatti quando dalle funzioni di inserimento in lista inserisco uno o più elementi, al ritorno al main non ci sono elementi nella lista. Questo presumo accada in quanto prima cerco l'elemento Foo che mi serve tramite .find(key) e ne creo una copia su cui lavorare e, essendo una copia, l'elemento della map non viene in realtà modificato.
Vorrei qualche consiglio su come agire in questo caso sperando di essermi spiegato al meglio!
"When you know Slackware, you know Linux… when you know Red Hat, all you know is Red Hat."
Avatar utente
rfringuello89
Linux 2.4
Linux 2.4
 
Messaggi: 242
Iscritto il: sab feb 21, 2009 18:47
Nome Cognome: Renato Fringuello
Slackware: 64 current
Kernel: 3.13.3
Desktop: kde 4.12.4 [Alien]

Re: c++ lista dentro map problema

Messaggioda legura » mar mag 07, 2013 10:14

non è che stai lavorando su una copia di 'Mappa' ?

del tipo:

void
inserisci_in_mappa(std::map<string, Foo> m )
{
// le modifiche a m sono locali alla funzione
}

void
inserisci_in_mappa_2(std::map<string, Foo>* m )
{
// le modifiche a m saranno visibili anche in main
}



main(){
...
std::map<string, Foo> mappa;

// mappa viene modificato
inserisci_in_mappa_2(mappa ) ;

// mappa NON viene modificato, perchè la funzione lavora su una copia sua locale di mappa
inserisci_in_mappa(mappa ) ;



};
legura
Linux 1.0
Linux 1.0
 
Messaggi: 14
Iscritto il: mer mar 23, 2011 12:07

Re: c++ lista dentro map problema

Messaggioda rfringuello89 » mar mag 07, 2013 10:37

Salve, grazie per la risposta. Penso di aver risolto, l'errore era banale e sintattico! La risposta è stata molto utile confermandomi che questi tipi di dato devono essere passati per riferimento.
"When you know Slackware, you know Linux… when you know Red Hat, all you know is Red Hat."
Avatar utente
rfringuello89
Linux 2.4
Linux 2.4
 
Messaggi: 242
Iscritto il: sab feb 21, 2009 18:47
Nome Cognome: Renato Fringuello
Slackware: 64 current
Kernel: 3.13.3
Desktop: kde 4.12.4 [Alien]


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite