I think you are arguing that iterators are "primarily" for iteration. But in C++ they really are like an abstraction over C pointers. For example, you can hold a std::list::iterator, and use it to efficiently delete from a linked list, without ever iterating.
Sometimes C pointers are used for iteration, but I would not say that is their primary purpose.
Sometimes C pointers are used for iteration, but I would not say that is their primary purpose.