In terms of performance, what would work faster? Is there a difference? Is it platform dependent?
//1. Using vector<string>::iterator: vector<string> vs = GetVector(); for(vector<string>::iterator it = vs.begin(); it != vs.end(); ++it) { *it = 'Am I faster?'; } //2. Using size_t index: for(size_t i = 0; i < vs.size(); ++i) { //One option: vs.at(i) = 'Am I faster?'; //Another option: vs[i] = 'Am I faster?'; }
Why not write a test and find out?
Edit: My bad – I thought I was timing the optimised version but wasn’t. On my machine, compiled with g++ -O2, the iterator version is slightly slower than the operator[] version, but probably not significantly so.