Effective STLの9項だな。
for行の最後のits++をやめて、
if (*its == ' ')なら its = str.erase(its);、elseを用意してその中では ++its;
これでうまくいくはず。
要は、イテレータはeraseで無効になるが、新しい有効なイテレータをeraseがくれるということ。

mapにも別のやり方がある。興味があるなら自分で調べれ。