I've made a habit out of using iterators as much as possible, and use them wherever I am looping over vectors. However, sometimes that means I end up with code like this:
As for from an efficiency point of view -- I don't think iterators are any more/less efficient than using indexes (at least not with vectors), so it really comes down to a clarity/simplicity issue, rather than an efficiency issue.