加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 使用STL从字符串中删除重复的字符

发布时间:2020-12-16 05:22:00 所属栏目:百科 来源:网络整理
导读:有没有办法从字符串中删除重复的字符,就像它们可以从矢量中删除,如下所示 sort( vec.begin(),vec.end() );vec.erase( unique( vec.begin(),vec.end() ),vec.end() ); 或者我只需要为它编写基本解决方案? 我的想法: 我可以将所有字符添加到一个集合中 解决
有没有办法从字符串中删除重复的字符,就像它们可以从矢量中删除,如下所示
sort( vec.begin(),vec.end() );
vec.erase( unique( vec.begin(),vec.end() ),vec.end() );

或者我只需要为它编写基本解决方案?
我的想法:

我可以将所有字符添加到一个集合中

解决方法

C’算法和容器设计的重点在于算法 – 尽可能 – 容器不可知.

所以同样适用于矢量的算法 – 当然! – 关于字符串.

std::sort(str.begin(),str.end());
str.erase(std::unique(str.begin(),str.end()),str.end());

这同样适用于旧式C字符串 – 由于您无法擦除尾部的小差别,您需要通过重新设置空终止字符来手动截断它们(并且没有开始和结束成员函数,因此您需要使用指向第一个和最后一个字符的指针).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读