【发布时间】:2010-10-08 23:42:45
【问题描述】:
给定以下字符串,"Hi ~+ and ^*. Is ^* still flying around ~+?"
我想用“Bobby”和“Danny”替换所有出现的"~+"和"^*",所以字符串变成:
"Hi Bobby and Danny. Is Danny still flying around Bobby?"
我宁愿不必调用 Boost 替换函数两次来替换两个不同值的出现。
【问题讨论】:
-
字符串从何而来?
-
我们知道
O(n) + O(n)仍然是O(n),这里的真正动机是什么? -
实际的字符串/数据可能有 100 GB 大小,增量处理,调用 replace 两次仍然是 O(n),n 相当大。
-
我正在尝试了解是否有可以立即使用的东西,而不是使用双重扫描。我希望有。感谢您回复我。
-
假设这不是一个练习,而是主要目标是处理可能有大约 100 个 GiG 的文本文件,替换用户指定的字符串,您是否考虑过“sed”?参见例如[linuxask.com/questions/replace-multiple-strings-using-sed]。你没有说任何关于行长的事情,这可能需要一些测试。
标签: c++ string boost str-replace