View Single Post
Old 05-12-2007, 17:46   #2
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Unrue Guarda i messaggi
Ciao ragazzi,
sto adoperando i Vector per un mio programma. Mi è venuto però un dubbio. Dovendo passare il Vector ad una funzione, è meglio usare :

Codice:
void funzione(vector<double>&);

vector<double> a;

funzione(&a) ;
qui hai sbagliato a scirvere per passare un riferimento basta
Codice:
funzione(a);
Quote:
Codice:
void funzione(vector<double>*);

vector<double>*a;

funzione(a) ;
Questa è sbagliata in quanto non allochi il puntatore e passi a funzione un puntatore non inizializzato. Per come è dichiarata funzione non può nemmeno allocare il puntatore visto che servirebbe un vector<double>**

Quote:
Altro mio dubbio riguarda il fatto di usare un puntatore a Vector, o direttamente un Vector. Voglio dire, nel caso di semplici array, se scrivo

Codice:
int a[10]
uso direttamente l'array che ha lunghezza fissa. Se uso int*a, posso dichiararlo dinamico. Ma anche nei Vector vale questa condizione?

Se scrivo

Codice:
vector<double> a
Può' comunque essere dinamico. Quindi non capisco quando va usato un puntatore a Vector e quando no.

Grazie.
La cosa migliore da fare è usare i riferimenti per il passaggio di contenitori stl e non allocarli dinamicamente.
Sinceramente mi sfugge un motivo valido per istanziare un puntatore a vector
tomminno è offline   Rispondi citando il messaggio o parte di esso