Quote:
Originariamente inviato da Unrue
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
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
uso direttamente l'array che ha lunghezza fissa. Se uso int*a, posso dichiararlo dinamico. Ma anche nei Vector vale questa condizione?
Se scrivo
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