|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Dec 2007
Messaggi: 5
|
[C++] La STL ed i vector
Ho creato una mia classe e sono riuscita a memorizzarla correttamente all'interno di un vector (vettore dinamico fornito dalla STL) ma mi sono accorta che in realtà dovrei salvare nel vettore dei puntatori ai membri della mia classe. Il compilatore mi dà un sacco di errori.
May you help me? |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Quote:
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Dec 2007
Messaggi: 5
|
più precisamente
Ho creato una classe di tipo
class tizio{ private: int nazionalita; int carta_identita; float strategia[5]; .... public: int get_nazionalita(); int get_carta_identita(); float get_strategia(int paese); .... friend ostream &operator<<(ostream &stream, tizio a); friend bool operator<(tizio a, tizio b); friend bool operator==(tizio a, tizio b); Grazie a queste ultime tre funzioni sono riuscita a memorizzare in un vettore dei membri di tizio per costruire un'altra classe: class piazza { private: int targa_x; int targa_y; vector< class tizio> piazzati; Il problema è che mi sono accorta che la class piazza, per funzionare correttamente, non ha bisogno di un vettore di Tizio ma di un vettore di puntatori a Tizio. Non ho idea di come fare |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
forse vuoi fare questo:
Codice:
vector<tizio *> piazzati; Codice:
tizio *ptizio = new tizio(); piazzati.push_back(ptizio);
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Dec 2007
Messaggi: 5
|
ma...
Ma tutto questo lo devo fare all'interno della dichiarazione della classe "piazza" che utilizza Vector?
Grazie |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
class piazza { private: vector< tizio * > piazzati; public: piazza(); void inserisci(tizio *t); .... ... ... } void piazza::inserisci(tizio *t) { piazzati.push_Back(t); } Nel codice se hai già un tizio: ... ... ... piazza p; p.inserisci(&t); oppure se vuoi inserire al volo un altro tizio lo puoi creare tramite: p.inserisci(new tizio("xxx", "yyy", 1111, 222)); |
|
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Dec 2007
Messaggi: 5
|
Grazie
Avevo provato a fare nel modo suggeritomi da Cionci, il compilatore mi dava errori, ma può benissimo darsi che tali errori siano semplici inesattezze... ora che so che la cosa è fattibile insisterò.
Grazie mille. Ps Non è che conosci il Papucci? Mi sembra di averti già sentito nominare nel mondo reale! |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Papucci, mmmm no... Di dove sei ?
Comunque se hai errori posta il codice e vediamo di darci un'occhiata... |
|
|
|
|
|
#9 |
|
Junior Member
Iscritto dal: Dec 2007
Messaggi: 5
|
Prima cerco di dargli una forma
Grazie! prima però cerco di dargli una forma migliore (nel correggere il codice che usavo prima ho fatto un sacco di errori).
Io sono di Torino, ma in realtà praticamente sono di stanza a Viareggio, la persona di cui ti parlo è di Campi, canta in un gruppo che fa conver dei Korn |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
No...non lo conosco.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:56.












ho concluso con: kvegeta, doctordb, Leland Gaunt.








