>>36
std::vector<T>::iteratorはランダムアクセスイテレータです。
ランダムアクセスイテレータに対してoperator++()を適用するには、
適用前に参照はがしが可能、適用後に参照はがしが可能または
最後を過ぎた状態でなければなりません。(仕様書参照)
この場合、vは空であり、v.begin()にしろv.end()にしろ、
v.end()を返し、これは参照はがしが出来ません。よってこれは
operator++()が適用前に必要な条件を満たしていませんので、
結果は未定義です。