您的位置:首页 > 其它

从字符串中删除相同的相邻字符

2010-11-01 17:39 330 查看
题目:从字符串中删除相同的相邻字符。

初步实现:

void remove_duplicate_adjacent(wstring &s)
{
wstring::iterator it1, it2;
it1 = it2 = s.begin();
it2++;
for (;it2 != s.end();)
{
if (*it1 == *it2)
{
s.erase(it2);
}
else
{
it1++;
it2++;
}
}
}


进一步:

template <class T>
void remove_duplicate_adjacent(T &value)
{
T::iterator it1, it2;
it1 = it2 = value.begin();
it2++;
for (; it2 != value.end(); )
{
if (*it1 == *it2)
{
it2 = value.erase(it2);
}
else
{
it1++;
it2++;
}
}
}


第二次用了模板,另外删除元素时用的代码也有差异,这是因为删除某个元素后其后的iterator有可能会invalidate,比如vector。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐