В настоящее время существует два популярных варианта, реализующих шаблон итератора :
Каковы их относительные преимущества? Один лучше другого, или это зависит от варианта использования (и если да, то каковы критерии, чтобы решить, какой из них использовать)?