【发布时间】:2017-06-20 06:15:31
【问题描述】:
问题
有一个巨大的文件(10GB),必须读取文件并打印出文件中精确重复k次的单词数
我的解决方案
- 使用
ifstream逐字读取文件; - 将单词插入地图
std::map<std::string, long> mp; mp[word] += 1; - 读取文件后,查找地图中的所有单词以获取出现
k次的单词
问题
- 如何使用多线程有效读取文件[按块读取]?要么 任何提高读取速度的方法。
- 有没有比map更好的数据结构可以有效的找到输出?
文件信息
- 每行最多 500 字
- 每个单词的最大长度为 100 个字符
【问题讨论】:
标签: c++ data-structures c++14 fstream