如何解决std::string::erase 删除迭代器之后的所有字符,而不仅仅是迭代器
size_t it = s.find(char(i+97)); //dont mind the i,it is just the int in a for loop.
s.erase(it);
这是一个测试用例:
输入:“cccaabababaccbc”
输出:“ccc”
关于为什么会发生这种情况的任何想法?
解决方法
当你传入一个索引时,要擦除,它会一直持续到字符串的末尾。将其更改为 s.erase(it,1)。第二个参数表示要删除的字符数。
我建议不要将变量命名为 it,该名称通常用于迭代器类型。
如果你传递一个迭代器来擦除,那么只会删除那个字符。
文档如下:https://www.cplusplus.com/reference/string/string/erase/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。