Для векторов я всегда использую целочисленный метод. Каждый индекс в векторе имеет ту же скорость, что и поиск в массиве. Если я собираюсь часто использовать значение, для удобства я создаю ссылку на него.
векторные итераторы могут быть немного быстрее, чем индекс в теории, поскольку они используют арифметику указателей для итерации по списку. Однако обычно я нахожу, что читаемость стоит минимальной разницы во времени выполнения.
Я использую итераторы для других типов контейнеров, а иногда, когда вам не нужна переменная цикла. Но если вам нужна переменная цикла, вы ничего не делаете, кроме как сделать цикл более трудным для ввода. (Я не могу дождаться автоматического запуска c ++ 0x ..)