Ik ben bezig met een C++ applicatie, en ik heb twee arrays, zeg array A[100] en B[100]. Array A bevat de hoogtes van cellen, en array B bevat initieel indexen van A (dus B[x] == x), met uitzondering van een paar die niet meegenomen moeten worden, hiervoor geld B[y] = -1.
Nu wil ik B oplopend sorteren, aan de hand van de hoogte van A. Ik kan A zelf niet sorteren, omdat ik later ook nog naar de buren van cellen in A moet kijken.
Dit doe ik nu op de volgende manier:
Dit werkt goed, mits ik A globaal definieer (althans, in dezelfde scope als de functie heightSort, en de functie die de sort() aanroept) - dit is alleen niet wat ik wil, ik wil namelijk verschillende array's "A" kunnen gebruiken. Hoe kan ik dus A als parameter meegeven aan de sort functie?
Nu wil ik B oplopend sorteren, aan de hand van de hoogte van A. Ik kan A zelf niet sorteren, omdat ik later ook nog naar de buren van cellen in A moet kijken.
Dit doe ik nu op de volgende manier:
C++:
1
2
3
4
5
6
7
| sort(B, B + 100, heightSort); inline bool heightSort(int index1, int index2) { if (index1 == -1) return false; if (index2 == -1) return true; return A[index1] < A[index2]; } |
Dit werkt goed, mits ik A globaal definieer (althans, in dezelfde scope als de functie heightSort, en de functie die de sort() aanroept) - dit is alleen niet wat ik wil, ik wil namelijk verschillende array's "A" kunnen gebruiken. Hoe kan ik dus A als parameter meegeven aan de sort functie?