• 1
Votes
name
name Punditsdkoslkdosdkoskdo

Iterate through a C++ Vector using a 'for' loop

I am new to the C++ language. I have been starting to use vectors, and have noticed that in all of the code I see to iterate though a vector via indices, the first parameter of the for loop is always something based on the vector. In Java I might do something like this with an ArrayList:

for(int i=0; i < vector.size(); i++){
   vector[i].doSomething();
}

Is there a reason I don't see this in C++? Is it bad practice?

 

Is there any reason I don't see this in C++? Is it bad practice?

No. It is not a bad practice, but it renders your code certain flexibility.

Usually, pre-C++11 the code for iterating over container elements uses iterators, something like:

std::vector<int>::iterator it = vector.begin();

This is because it makes the code more flexible.

All standard library containers support and provide iterators and given that if at a later point of development you need to switch another container then this code does not need to be changed.

Note: Writing code which works with every possible standard library container is not as easily possible as it might seemingly seem to be.

  • 0
Reply Report