Iterator Pattern External vs Internal Iteration Iterators and Traversables In Languages Rust iterator C++ ranges C++ iterators are not really iterators