Всегда в раздумьях об этом. Для компьютера это не имеет значения, компилятор достаточно велик, чтобы заботиться о себе, и в конечном итоге будет генерировать одинаково хороший код для любого случая.
А как же программист?
Видя for(int i=0;i<blah.size();i++)
мой глаз сразу же читает это как "зацикливание на всех элементах".
Во время просмотра:
typedef std::vector<int> MyIndexes;
MyIndexes indexes;
for (Something::iterator iter = indexes.begin(); iter != indexes.end(); ++iter);
Я должен внимательно прочитать каждую строку, чтобы убедиться, что вы не делаете что-то хитрое.
С другой стороны, просмотр цикла for () заставляет меня беспокоиться о том, что код написан программистом C, который ничего не знает о STL и будет ужасно спроектирован.