用C++高效地阅读一部分文本
Efficiently read a portion of text in C++
我读过这个,然后又读过这个关于如何在C++中利用boost::spirit
库高效地读取大量文本(浮动在第二个问题中)的问题。
根据我所看到的,上面问题中提出的解决方案阅读整个文本,而我需要阅读输入文本的部分(例如从char x到char y)。
我可以利用上面的库来达到这个目的吗?否则我怎么能有效地做到这一点?
您甚至不需要映射文件的子部分,因为mmap只是虚拟地映射内存块。实际页面仅按需加载,因此即使您只有4GiB的物理RAM(甚至不需要交换),也可以映射文件的完整12GiB。
如果您的文件是基于文本的,您将希望从文件中的随机位置找到行的开头。
类似的例子在这里的第二种方法中:使用boost::iostreams::mapped_file_source和std::multimap
相关文章:
- 文本文件中的单词链表
- 从命令行c++发送文本文件名
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在C++中删除文件中的一部分文本
- 如何在C 中获取文本文件的一部分
- 使用输入作为名称的一部分创建文本文件
- 对一部分文本执行并发mmap()
- 将文本附加到正则表达式匹配的一部分
- 用C++高效地阅读一部分文本
- 试图从c++文本文件的单行中提取字符串的一部分
- 将文本文件的一部分输入到数组中
- 使用两个字符串分隔符选择文本文件的一部分