Iterator Abstraction

What problem does the Iterator pattern fundamentally solve?

A

It ensures collections are always sorted when traversed

B

It makes container operations thread-safe by serializing access

C

It provides a way to access elements of a collection sequentially without exposing the underlying data structure

D

It converts one collection type into another (e.g., list to tree)