Hello guys,
After performing some C++ testing on vector iterators. I have found that the postfix-increment is faster.
Code:
#include <vector>
#include <stdlib.h>
using namespace std;
class TestClass {
int var1, var2;
float floatone;
public: inline TestClass() {}
};
#define USE_POSTFIX 1
int main( int argc, char *argv[ ] ) {
vector<TestClass> vectorz( 10000 );
vector<TestClass>::iterator viterator;
volatile int garbage = 0;
for ( unsigned int i = 0; i < 10000; i += 1 ) {
for ( viterator = vectorz.begin(); viterator != vectorz.end();)
{
garbage += 1; // make sure optimizer doesn't balete the loop
#ifdef USE_POSTFIX
viterator++;
#else
++viterator;
#endif
}
}
}
Timings: Prefix 5.19s user time, Postfix 4.63s user time.
Any of you guys know why this might be the case?