Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-12-2007, 13:49   #1
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7152
[C++] Dubbio sui Vector

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) ;
Oppure :

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

vector<double> a;

funzione(&a) ;
Oppure :

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

vector<double>*a;

funzione(a) ;
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.

Ultima modifica di Unrue : 05-12-2007 alle 13:52.
Unrue è online   Rispondi citando il messaggio o parte di esso
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
Old 07-12-2007, 16:37   #3
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7152
Quote:
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>**
Si certo,ovviamente prima lo alloco, era solo un codice di esempio. Quelle righe non vanno intese come se fossero una dietro l'altra.

Quote:
La cosa migliore da fare è usare i riferimenti per il passaggio di contenitori stl e non allocarli dinamicamente.
Non ho capito cosa intendi. La potenza dei Vector si vede proprio quando si usa l'allocazione dinamica.
Unrue è online   Rispondi citando il messaggio o parte di esso
Old 07-12-2007, 20:03   #4
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Unrue Guarda i messaggi
Non ho capito cosa intendi. La potenza dei Vector si vede proprio quando si usa l'allocazione dinamica.

cosa intendi dire con ciò?
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2007, 08:19   #5
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7152
Quello che ho detto
Cosa c'è che non ti torna? Un Vector può avere una lunghezza fissa, anzichè dinamica. Ma non è certo in questo caso che hai vantaggi.E' lo stesso discorso dei vantaggi che hai con un semplice array con dimensioni fisse ed uno dinamico.
Unrue è online   Rispondi citando il messaggio o parte di esso
Old 10-12-2007, 09:58   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Unrue Guarda i messaggi
Cosa c'è che non ti torna? Un Vector può avere una lunghezza fissa, anzichè dinamica. Ma non è certo in questo caso che hai vantaggi.E' lo stesso discorso dei vantaggi che hai con un semplice array con dimensioni fisse ed uno dinamico.
Un conto è "allocare un vector dinamicamente", un altro conto è "allocare gli elementi del vector dinamicamente".
tommino per allocazione dinamica intendeva la prima, cioè:

vector<double> *a = new vector<double>();

Anche un vector allocato staticamente così è dinamico nel contenuto:

vector<double> a;

Concordo sul passaggio per riferimento del vector allocato staticamente.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2007, 11:00   #7
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7152
Quote:
Originariamente inviato da cionci Guarda i messaggi
Un conto è "allocare un vector dinamicamente", un altro conto è "allocare gli elementi del vector dinamicamente".
E quale sarebbe la differenza?
Unrue è online   Rispondi citando il messaggio o parte di esso
Old 24-12-2007, 16:20   #8
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7152
MM, sempre sui Vector, è giusto definirlo nell'header e poi allocarlo in una funzione? Una cosa così :

Header :

Codice:
vector<double> a;
Nel .cpp :

Codice:
void funzione(vector<double>& vector_temp, int elem) {

vector_temp.reserve(elem);

}
e poi:

Codice:
funzione(a);
Unrue è online   Rispondi citando il messaggio o parte di esso
Old 24-12-2007, 16:26   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E' giusto, ma reserve influisce solo sull'allocazione interna, per dare un dimensione (cioè inserire n elementi nel vector) si usa resize.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2007, 16:31   #10
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7152
Si ok, grazie
Unrue è online   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Anthropic proroga ancora Fable 5 gratis ...
SBS annuncia la nuova gamma Laptop con t...
Gli italiani sono interessati alla sicur...
Galaxy Watch 9, chip più veloce f...
Steam ha appena chiuso un semestre molto...
I nuovi iPhone 18 Pro potrebbero essere ...
Huawei realizzerà chip di nuova g...
La JAXA ha eseguito un test del prototip...
Netflix, ritorna la prova gratuita per i...
Il satellite LINK per salvare il telesco...
Il nuovo iPhone 18 Pro Max costerà...
Il tredicesimo volo del razzo spaziale S...
Pagare il parcheggio è sempre pi&...
Torvalds: 'Non sono più un progra...
Xiaomi lavora alla nuova Smart Band 11, ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:12.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v