如何在C ++中处理长字符串?

时间:2017-03-20 09:21:35

标签: c++ string performance

我的环境是C ++ 03。我需要修改大约10000到100000个字符的文件(尽管也可以有更大或更小的文件)。修改包括替换子串以及插入和删除行。

  • 实现方法1:将文件加载到大std::string中,修改它并将其写回文件。但是,插入字符串中间并没有很好的表现,对吧?
  • 实现方法2:将字符串拆分为vector<string>list<string>个较小的块(块可能是一行或多行),对每个块进行操作并将整个块放在一起结束。我想知道这是否有很大的开销......

所以问题是,哪种方法最好?我将不胜感激任何评论。谢谢!

1 个答案:

答案 0 :(得分:1)

“100000个字符”对我来说看起来不像一个大文件(那是100 KB btw)。但话说回来,我没有真正的文本处理经验。所以我的建议是:测试两者,描述它们,如果两种实现都产生类似的结果,也不要感到惊讶。

  

但是,插入字符串中间并不好   表现,对吗?

没必要。由于现在系统的设计方式,缓存局部性可以令人惊讶地快速地在字符串/向量的中间插入和删除。同样,了解具体案例的唯一方法是个人资料