Allora il vector probabilmente ha pure un reverse iterator che invece che andare avanti va in dietro (che genio)
Quindi il problema è del ++i o del cout<<*i (più probabile visti gli errori)
se infatti provi a stampare a[1] o a[2] funziona..
Soluzione? Sinceramente non ho idea del perchè *i (palesamente di tipo string) non venga stampato.. Proporrei una prova con i++ al posto di ++i e se il problema persiste di riguardarti la classe iterator..