+1 to helios, and I must say that vectors use random access iterators, so inferring an iterator for a particular item is trivial: Add the item's position to the vector's begin() iterator. Therefore, I believe that storing those is just a waste of memory.