Wenn Condition invers gemeint ist fehlt
IMHO ein else Zweig
OK, stimmt ... das ist verwirrend:
condition(element)
soll
true
sein, wenn
element
im Array behalten werden soll.
Mir ist aber nicht klar, was für ein else-Zweig fehlen sollte?
Angenommen ich will aus dem Array [0 1 2 3 4] alle geraden Zahlen herausfiltern.
Vor 1. Schleifendurchlauf:
Code:
[0 1 2 3 4]
readPos 0
writePos 0
retained 0
Vor 2. Schleifendurchlauf:
Code:
[0 1 2 3 4]
readPos 1
writePos 1
retained 1
Vor 3. Schleifendurchlauf:
Code:
[0 1 2 3 4]
readPos 2
writePos 1
retained 1
Vor 4. Schleifendurchlauf:
Code:
[0 2 2 3 4]
readPos 3
writePos 2
retained 2
Vor 5. Schleifendurchlauf:
Code:
[0 2 2 3 4]
readPos 4
writePos 2
retained 2
Ende der Schleife:
Code:
[0 2 4|3 4]
readPos? |
writePos |3
retained 3
setLength(aArray, retained) => [0 2 4]
Dabei fällt mir auf, dass
writePos
und
retained
immer gleich sind; man könnte sich also eine der Variablen sparen