PDA

Visualizza la versione completa : [C++] Associare valori boolean ad elementi di un array


Paulin
19-01-2007, 15:40
Ho un'Array dinamico a tre dimensioni. Ad ogni elemento della seconda dimensione vorrei associare un valore Bool (veoro o falso).

La ragione di ciò sta nel fatto che io leggo e scrivo sul mio Array non in modo seriale, ma in modo "disordinato", però una volta che un valore è stato modificato esso non va più toccato (ogni valore può essere modificato una sola volta). Per questo mi occorre un indice che mi dica se il valore è già stato modificato al fine di ignorarlo.

Io ho pensato ad un valore Bool, ma qualsiasi altra buona idea può essere utile.

Il mio array è definito come segue:



int l = 0;
#define m 4
#define n 3
double (*myArray)[m][n];

// codice con cui definisco la dimensione di l

myArray = new double [l][m][n];

// codice in cui adopero l'Array

delete []myArray;



...a voi la palla!
Qualsiasi consiglio sarà ben accetto.

MItaly
19-01-2007, 16:34
Lipperlì mi vengono in mente queste due possibilità:

creare un array di bool con lo stesso numero di elementi di quello di double e memorizzare lì se il valore è stato scritto o meno; eventualmente puoi incapsulare entrambi gli array in una struttura o in una classe;
inizializzare tutto l'array di double ad un preciso valore (il numero negativo più grande rappresentabile in un double, ad esempio) ed usarlo come flag per vedere se ci è già stato scritto qualcosa.

Paulin
19-01-2007, 17:56
Ciao MItaly! La tua prima proposta mi pare interessante, posso creare un array bool e gestirlo parallellamente agli elementi dell'altro array, overossia, all'interno dello stesso ciclo che decide quale valore dell'array double va modificato. In questo modo mantengo la sua posizione nell'array bool.

Mi pare convincente!

La seconda ipotesi invece credo che non sia possibile perché quando inizializzo il mio array lo devo subito definire con dei valori noti letti da file, quelli che poi andranno man mano sostituiti in base al calcolo.

Grazie per la risposta.

Loading