Random Access Iterator A Bidirectional Iterator Supports random access i + a and i - a moves a elements i[a] is equivalent to *(i + a) i1 - i2 gives distance between iterators LessThan Comparable Random Access must be constant time