我的环境是C ++ 03。我需要修改大约10000到100000个字符的文件(尽管也可以有更大或更小的文件)。修改包括替换子串以及插入和删除行。
std::string
中,修改它并将其写回文件。但是,插入字符串中间并没有很好的表现,对吧? vector<string>
或list<string>
个较小的块(块可能是一行或多行),对每个块进行操作并将整个块放在一起结束。我想知道这是否有很大的开销...... 所以问题是,哪种方法最好?我将不胜感激任何评论。谢谢!
答案 0 :(得分:1)
“100000个字符”对我来说看起来不像一个大文件(那是100 KB btw)。但话说回来,我没有真正的文本处理经验。所以我的建议是:测试两者,描述它们,如果两种实现都产生类似的结果,也不要感到惊讶。
但是,插入字符串中间并不好 表现,对吗?
没必要。由于现在系统的设计方式,缓存局部性可以令人惊讶地快速地在字符串/向量的中间插入和删除。同样,了解具体案例的唯一方法是个人资料。