我正在使用以下内容:
replace (str1.begin(), str1.end(), 'a' , '')
但这会导致编译错误。
原文由 Devesh Agrawal 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在使用以下内容:
replace (str1.begin(), str1.end(), 'a' , '')
但这会导致编译错误。
原文由 Devesh Agrawal 发布,翻译遵循 CC BY-SA 4.0 许可协议
从 C++20 开始, std::erase()
已添加到标准库中,它将对 str.erase()
和 std::remove()
的调用合并为一个函数:
std::erase(str, 'a');
std::erase()
作用于字符串的函数重载直接在 <string>
头文件中定义,因此不需要单独的包含。为所有其他容器定义了类似的重载。
原文由 Kai Petzke 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
基本上,
replace
用另一个字符替换一个字符,而''
不是一个字符。您正在寻找的是erase
。请参阅 这个问题,它回答了同样的问题。在你的情况下:
或者使用
boost
如果这是您的选择,例如:所有这些在 参考 网站 上都有详细记录。但是如果你不知道这些功能,你可以很容易地用手做这种事情: