Looks interesting overall. There is one function, however, which makes no sense to me: removeElement()/stableRemoveElement().
So, it basically removes a random element from the container? It could be quite consistent as to which element it removes from the container (it being implementation-dependent), but effectively, it removes a random element? What's the point of that? I can't remember the last time - if ever - that I wanted to remove an element from a container and I didn't care which. Or am I misunderstanding what it does? - Jonathan M Davis
