This may seem frivolous to some of you, but which of the following 2 methods of iteration over a STL container is better? Why?
A possibility not considered above: depending on the details of "Do something", one can have method 0 and method 1 simultaneously, you don't have to choose:
for (auto i = elemVec.begin(), ii = 0; ii < elemVec.size(); ++i, ++ii)
{
// Do something with either the iterator i or the index ii
}
This way, finding the index or accessing the corresponding member are both obtained with trivial complexity.