Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Ακόμα καλύτερα, θα μπορούσες να έχεις έναν πίνακα 1 x 50 με τύπο int*. Δηλαδή,

 

>
int* a[50];

 

Όπου, εάν έχεις βάλει τιμή τότε το κελί δείχνει στην τιμή αυτή αλλιώς είναι NULL. Σε μνήμη το ίδιο θα σου πιάσει (με μία γρήγορη σκέψη, edit, με μία 2η νομίζω θα πιάσει λιγότερο).

 

Επειδή έχει περάσει πολύς καιρός από την τελευταία μου επαφή, το NULL στην C++ δεν ισοδυναμει με 0; Αν ναι, τότε δεν υπάρχει λόγος να κάνει αυτό που περιγράφεις. Βάζει απευθείας 0, το οποίο δεν λύνει έτσι κι αλλιώς το πρόβλημα αν το 0 είναι έγκυρη τιμή, σωστά;

 

Εάν είναι 50 θέσεων και έχει σημασία και το 0 αλλά και όλοι οι αριθμοί, τότε μπορείς αντί για 1 x 50 πίνακα να έχεις 2 x 50 και στην 2η γραμμή να κρατάς μία ένδειξη εάν είναι γεμάτο το κελί ή όχι.

 

Οπότε, αρχικοποιείς κανονικά τον 2 x 50 πίνακα σε τιμή '0' και στις 2 γραμμές και χρησιμοποιείς για την εκχώρηση τιμών μόνο την 1τη γραμμή.

 

Όποτε βάλεις τιμή στην 1τη γραμμή βάζεις απλά ένα '1' στο αντίστοιχο κελί στην 2η.

 

Έτσι, εάν ένα "κελί" έχει '0' στην 2η γραμμή είναι "άδειο".

 

Το generalization[*] του παραπάνω concept είναι με array of structs (σε C που τη θυμάμαι :lol:)...

 

>
typedef struct elem {
   bool isEmpty;
   int data;
}Elem;
...
   Elem arr[50] = {{0,0}};

 

[*] Λέγοντας generalization, εννοώ και για πολυδιάστατους πινακες.

Δημοσ.

Άλλο όμως να έχει ο pointer τιμή '0' και άλλο να έχει τιμή '0' ο int που δείχνει ο pointer.

 

Οπότε εξαρχής εννούσες να κάνει new τα data του κάθε slot που θέλει να γεμίσει; (too messy, imho)

 

Βέβαια... thumbs up για το pair (που λέει ο defacer).

 

Το οποίο pair εγώ ούτε καν ξέρω τι είναι :lol: (πάω να το γκουγκλάρω).

 

Το οποίο pair εγώ ούτε καν ξέρω τι είναι :lol: (πάω να το γκουγκλάρω).

 

Οκ το γκούγκλαρα. Στα γρήγορα που διάβασα ένα ραφιναρισμένο c-struct μου κάνει (class, κλπ), σαν κι αυτό που έδωσα παραπάνω, αλλά με C++ ευκολίες. Ναι;

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...