在 C++ 中,我想访问文件中的一行。该行包含一个键值对。我没有足够的程序内存来将其存储在映射中,因为值太大。
我想将文件中键的位置存储在 map 中。然后在查询进入时访问它们的值。是否可以在 O(1) 中执行此操作?如果是这样,我应该在 C++ 中使用什么,即 fseek() 等?另外, key 的位置需要存储什么?
提前致谢。
最佳答案
fseek()
只是在文件中移动读/写指针的系统调用;其复杂性完全取决于您的操作系统和文件系统,当然还有您的存储设备(例如,在 SSD 上,fseek(x)
的时间与上次和新的位置,而在磁带驱动器上,事情将取决于相对距离。除非你的操作系统开始在 RAM 中缓存文件内容,一旦你用完可用 RAM,它就会停止。
关于c++ - 如何通过预处理文件来访问 O(1) 中文件中的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28459621/