Steven Schveighoffer wrote >> But I've changed everything to `new` the array afterwards as I deleted >> all the >> keys anyways. > > Not sure what you mean here.
foreach (K k, ; aa) { .. //aa.remove(k); } aa = new int[char]; > >>> >>> I have gotten around this in dcollections by removing elements outside >>> the >>> loop body. See for example the keypurge function of HashMap >>> (http://www.dsource.org/projects/dcollections/docs/current/dcollections.HashMap.html) >> Do you add the ones to be deleted to a dynamic array or do you loop >> over all elements afterwards? I expect the first :) > > I delete them as they are requested to be deleted. Since the deletion is > done by the opApply function, it has knowledge of when it is ok to delete > the element, and can save off any necessary structural information needed > to get to the next element. How is this `outside the loop body`? Should I read it as `after the loop body`? > > It makes for an efficient method to traverse and remove in one pass. > > -Steve