@lpereira I mixed up these all in the past as well. I have even left a memory leak due to the very same sentence you have pasted. Thanks to @tmpsantos for fixing it and elaborating on these answers.

What I have taken as a mantra since the past few weeks is: STL will never EVER touch the memory pointed by a certain pointer simply because it doesn't own that pointer and doesn't want to make any harmful assumptions. I still find the documentation sort of confusing about this, though.

I dug into this after stumbling across std::vector::erase() : "This effectively reduces the container size by the number of elements removed, which are destroyed."(http://www.cplusplus.com/reference/vector/vector/erase/)

I always find that a bit misleading at a first glance, so I chant my mantra and keep going.