2

我有一个巨大的文本文件(~5GB),它是我程序的数据库。在运行过程中,这个数据库会被多次读取,使用字符串函数,如 string::find()、string::at()、string::substr()...

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

你将如何实现这一点?我的想法是将一部分加载到字符串->阅读->关闭->将另一部分加载到相同的字符串->阅读->关闭->... 有更好/更有效的方法吗?

4

2 回答 2

1

你将如何实现这一点?

使用真实的数据库,例如 SQLite。拥有索引带来的性能提升不仅仅是为了弥补您学习另一个 API 的时间。

于 2012-06-04T03:49:34.553 回答
0

由于这是一个数据库,我假设它会有很多记录。对我来说,这意味着最好的想法是为每个记录实现一个数据类,并根据您计划如何使用它来填充列表/向量/等。由于文件很大,我还会研究持久性缓存。

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

于 2012-06-04T03:44:18.920 回答