Наряду с ответом Марка Б (что весьма неплохо) есть еще одна ситуация: если вы создаете временный объект типа, доступ к которому осуществляется через прямой итератор, объекты (очевидно, достаточно) создаются в порядке, поддерживаемом итератором, итакже уничтожается в том же порядке (не в обратном порядке - потому что итератор не поддерживает это).Я точно не помню, но мне кажется, что я вспоминаю то же самое (или, по крайней мере, допустимо), даже если рассматриваемый контейнер будет поддерживать обратную итерацию (поэтому рассматриваемый код может игнорировать контейнер /тип итератора, предположительно).