//插入、删除等操作之后,迭代器肯定会失效,需要重新设置
bool hasSpaceJustBefore = false;//标志位
while(i != sentence.end())
{
if (*i == ' ' || *i == 10)//*i = 10 means '\n'
{
if (hasSpaceJustBefore)//has space just before,hasSpaceJustBefore = true
{
j = sentence.erase(i);//delete *i,all elements after i move 1 forward
i = j;//erase will return the node B that delete A (ABC...)
continue;
}
hasSpaceJustBefore = true;
}
else
{
hasSpaceJustBefore = false;
}

++i;//when there is no use to delete
}