有效地阅读C ++

时间:2015-12-21 11:29:56

标签: c++ boost text

我已经阅读了this然后this有关如何在利用boost::spirit库的C ++中有效读取大量文本(第二个问题中的浮点数)的问题。

根据我所看到的,上述问题中提出的解决方案读取整个文本,而我需要阅读输入文本的部分(例如从char x到char y)。

我可以为此目的利用上面的库吗?我怎么能有效地做呢?

1 个答案:

答案 0 :(得分:2)

您甚至不需要映射文件的子部分,因为mmap只是虚拟地映射内存块。实际页面仅按需加载,因此您可以映射文件的完整12GiB,即使您只有4GiB的物理RAM(甚至不需要交换)。

如果您的文件是基于文本的,则需要从文件中的随机位置查找行首。

类似的一个例子是第二种方法:Using boost::iostreams::mapped_file_source with std::multimap