c ++将大文本文件读取到字符串(大于string :: max_size)

时间:2012-04-23 12:37:40

标签: c++ string text-files

我有一个大文本文件(~5GB),这是我程序的数据库。在运行期间,此数据库完全读取,其字符串函数如string :: find(),string :: at(),string :: substr()......

问题是这个文本文件无法加载到一个字符串中,因为 string :: max_size 肯定太小了。

你会如何实现这个?我有想法将一个零件加载到string-> reading-> closing->将另一个零件加载到相同的string-> reading-> closing-> ... 是否有更好/更有效的方式?

2 个答案:

答案 0 :(得分:1)

  

你会如何实现这个?

使用真实数据库,例如SQLite。拥有索引的性能提升不仅可以弥补您学习其他API的时间。

答案 1 :(得分:0)

由于这是一个数据库,我假设它有很多记录。对我来说,最好的想法是为每个记录实现一个数据类,并根据你打算如何使用它来填充列表/向量/等。我也会考虑持久缓存,因为文件很大。

在所有记录的容器类中,您可以根据需要实现搜索等功能。但正如对这个大小的数据库的建议,你可能最好使用数据库。