STL Iterators can have 3 different states:

Singular - The iterator's value does not dereference any object in any container. (You can uninitialize the iterator or seti it to a logical null value)

Dereferenceable - The iterator points to a valid object in the container.

Past-the-end - The iterator points to the object position past the last object in the container.