PDA

View Full Version : [C++] array multidimensionale come variabile di classe


tomminno
13-11-2007, 10:44
Ho una matrice di coefficienti decisamente corposa che qualche santo ha già inizializzato nella dichiarazione.
Ora vorrei utilizzarla come variabile di una classe. Il problema è a questo punto l'inizializzazione, perchè vorrei evitare di riscrivere a mano tutti quei coefficienti e altrettanto vorrei evitare di usare una variabile statica.
Un vector di array chiaramente non si può usare, ho provato ad usare vector di vector, ma non posso riciclare niente di quello che è stato scritto in quanto devo per forza inserire i singoli elementi a forza di push_back. :muro:
Che soluzione posso adottare?

cionci
13-11-2007, 12:20
Quindi diciamo che cerchi un modo per inizializzare un vector con un array monodimensionale...giusto ?

Ho trovato questo modo di inizializzarlo:

int myints[] = {16,2,77,29};
vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) );

Ovviamente se il vettore con cui lo inzializzi non è statico dovrai trovarti la dimensione in modo diverso ;)
Suppongo che sfrutti la conversione automatica fra puntatore ed iteratore...

trallallero
13-11-2007, 12:52
forse non ho capito niente ...
non la puoi inizializzare nel costruttore ?

certo non è bello

EDIT: ho riletto ... pensavo volessi riutilizzare la stessa variabile ma non sapevi comne inizializzarla

tomminno
13-11-2007, 14:27
Quindi diciamo che cerchi un modo per inizializzare un vector con un array monodimensionale...giusto ?

Ho trovato questo modo di inizializzarlo:

int myints[] = {16,2,77,29};
vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) );

Ovviamente se il vettore con cui lo inzializzi non è statico dovrai trovarti la dimensione in modo diverso ;)
Suppongo che sfrutti la conversione automatica fra puntatore ed iteratore...

Non avevo provato e non pensavo che funzionasse una inizializzazione del genere.
Effettivamente è la soluzione migliore, c'è solo una duplicazione momentanea dei dati.
Grazie!