View Full Version : [C++] Problema con lista
Ciao a tutti...
Sto iniziando a vedere la programmazione in c++ ma ho un grosso problema.
Tramite le librerie standad del c++ voglio creare una mappa.
Il campo chiave che è unico è una string
Il secondo campo è invece un'oggetto che creo così: data *bo = new data();
la mappa l'ho dichiarata così
map<string,data> struttura;
map<string,data>::iterator it;
Ed poi volevo utilizzare struttura.insert(lettura,bo);
Ma non c'è verso che funzioni ed gli errori che escono sono a me incomprensibili. Chi mi può aiutare? Grazie
#include <iostream>
using namespace std;
#include <string>
#include <map>
int main()
{
map<string,int> map_example;
map_example.insert(
map<string,int>::value_type( string("Ciao"),1 ));
//puoi anche definire typedef map<string,int>::value_type valType
//-----> map_example.insert( valType( string( "Ciao" ),1 ));
cout << map_example[ string("Ciao") ] << endl;
//ovviamente con più elementi c'è iterator
}
Innanzi tutto grazie per la risposta.
Il problema è che nell'esempio usi string e int e va bene
io invece volevo utilizzare string e bo dove bo è un oggetto di una classe data da me creata
si può fare e come?
guarda in c++ string è una classe quindi con string("Ciao") crei un oggetto di tipo sring e comunque alla fine sempre un oggetto è.
quindi se implementi tu una classe e gli passi l'oggetto creato dalla tua classe perchè non dovrebbe funzionare?
quindi se implementi tu una classe e gli passi l'oggetto creato dalla tua classe perchè non dovrebbe funzionare?
Perchè sbagliavo il modo di passarglielo... ti ringrazio ma adesso ci sono riuscito...
Ancora una cosa come faccio a trattare il carattere ( è ) quando lo leggo da un file e poi stamparlo a video correttamente???
non ti so dire io di abitualmete preferisco usare l'apice
es:
piu'
e'
onesta'
Perchè in pratica nella mappa metto una sequenza di parole e in automatica è ordinata in ordine alfabetico.
Il casino è che il carattere ( è ) mi compare in fondo e non dopo la ( e )
Esempio inserisco
e
dd
aa
è
z
ottengo
aa
dd
e
z
è
vorrei
aa
dd
e
è
z
Non c'è una soluzione semplice??? Mi devo sbattere ad ordinare a mano???
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.