Iterators implemented
Reverted "faster" erase.

The right hand side is evaluated first and therefore it will always assign to itself.

Example:
i = 1
... = data[++1]
... = data[2]
... = 14
data[2] = 14