gpt4 book ai didi

c++ - 使用STL从字符串中删除重复字符

转载 作者:太空狗 更新时间:2023-10-29 23:16:29 25 4
gpt4 key购买 nike

有没有办法从字符串中删除重复的字符,就像它们可以从 vector 中删除一样,如下所示

sort( vec.begin(), vec.end() );
vec.erase( unique( vec.begin(), vec.end() ), vec.end() );

还是我只需要为它编写一个基本的解决方案?我的想法:

我可以把所有的角色都加到一个集合中

最佳答案

C++ 算法和容器设计的全部要点在于算法——尽可能——与容器无关。

因此,适用于 vector 的相同算法当然有效! – 在字符串上。

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

这甚至适用于旧式 C 字符串——唯一的区别是您不能删除它们的尾部,您需要通过重新设置空终止字符来手动截断它们(并且有没有 beginend 成员函数,因此您将使用指向第一个和过去最后一个字符的指针。

关于c++ - 使用STL从字符串中删除重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23687500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com