我有一个正在开发的 C++ 程序,它处理许多不同类型的对象,这些对象需要在启动时从文件中检索。总文件大小略小于 1GB。该程序必须至少在 Windows 7 和 Linux 上运行。
我的目标是提供读取文件的功能,并将它们存储到对象中(包括数据验证),所以我能想到的解决方案是:
- 只需为每种对象类型提供至少一个函数来读取文件,并将数据复制到新创建的对象。这就是我迄今为止一直在做的事情。
- 使用数据库存储数据并使用 SQL 检索数据。
我想切换到第二个选项,但是我有一些限制:
- 我不允许使用我的程序连接到互联网,所以远程服务器数据库是不可能的。
- 我不允许制作强制用户安装其他软件的程序,在这种情况下,是本地数据库。
- 只能通过运行程序来访问本地数据:用户无需运行其他可执行文件来修改或读取文件。
我在互联网上搜索了一个 c++ 库,它允许程序使用 SQL 语法将特定数据存储/检索到本地文件,但到目前为止我什么都没有。由于我提到的限制,我知道的数据库软件,如 MySQL、Postgresql 等不会这样做。
我的主要问题是:是否有这样的 C++ 库,还是我必须自己实现? 我宁愿它是免费的,但我可以做任何我能找到的事情。
如果没有这样的库,有没有人知道在本地为 c++ 程序存储数据的任何其他替代方案?如果我要实现我自己的,有什么方法(如在文件数据结构中)来存储我的对象(对于小于 1GB 的数据,它不会非常慢)?