for(vector<int>::iterator i=v.begin();i!=v.end();++i)
は auto さんがいたら
for(auto i=v.begin();i!=v.end();++i)
と書けるわけで、ことさら range-based for さんを導入する動機が
やっぱりわからん