ik ben bezig aan een mp3 programma en daarin heb ik 2 objecten. (ja wel wat meer, maar die boeien nu even niet.)
Hoofdlijst en playlijst
de hoofdlijst bevat alle gegevens over alle mp3's op het systeem.
playlijst bevat een index lijst die verwijst naar de hoofdlijst.
dit wou ik doen met behulp van een dynamische array.
enkel ik vind de manier hoe ik het nu doe wel erg omslachtig.
zou het meschien mogelijk zijn om de lijst onmiddelijk te vergrote zonder dat ik hem eerst moet deleten en weer aanmaken?
de vraag is dus, hoe zou ik de functie om een nummer aan de index (mp3_index) toe te voegen zonder dat ik daar die lelijke constructie voor hoef te gebruiken.
-tmp lijst defineren die 1 veld groter is dan huidige lijst.
-huidige lijst copieeren naar tmp lijst.
-huidige lijst verwijderen en opnieuw aanmaken met 1 veld meer.
-tmp lijst terug copieeren naar huidige lijst.
-edit-
spelling en vraagstelling wat duidelijker opgeschreven. (hoop ik)
Hoofdlijst en playlijst
de hoofdlijst bevat alle gegevens over alle mp3's op het systeem.
playlijst bevat een index lijst die verwijst naar de hoofdlijst.
dit wou ik doen met behulp van een dynamische array.
enkel ik vind de manier hoe ik het nu doe wel erg omslachtig.
zou het meschien mogelijk zijn om de lijst onmiddelijk te vergrote zonder dat ik hem eerst moet deleten en weer aanmaken?
de vraag is dus, hoe zou ik de functie om een nummer aan de index (mp3_index) toe te voegen zonder dat ik daar die lelijke constructie voor hoef te gebruiken.
-tmp lijst defineren die 1 veld groter is dan huidige lijst.
-huidige lijst copieeren naar tmp lijst.
-huidige lijst verwijderen en opnieuw aanmaken met 1 veld meer.
-tmp lijst terug copieeren naar huidige lijst.
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| class play_lijst{ public: play_lijst(){ } void create_list(int i[]){ mp3_index = new int[sizeof(i)]; max_index = sizeof(i); int j=0; while (sizeof(i)){ mp3_index[j] = i[j]; j++; } } void add_song(int i){ int j=0; int *tmp_index; tmp_index = new int[max_index+1]; while (j <= max_index) { tmp_index[j] = mp3_index[j]; j++; } tmp_index[max_index+1] = i; delete mp3_index; max_index++; mp3_index = new int[max_index]; j=0; while (j <= max_index) { mp3_index[j] = tmp_index[j]; j++; } } private: int *mp3_index; int index; int max_index; }; |
-edit-
spelling en vraagstelling wat duidelijker opgeschreven. (hoop ik)
[ Voor 21% gewijzigd door Verwijderd op 23-06-2003 00:11 ]