我有一个字符串和无符号的映射,其中我将一个单词存储到以下形式的频率:
map<string,unsigned> mapWordFrequency; //contains 1 billion such mappings
Run Code Online (Sandbox Code Playgroud)
然后我读了一个巨大的文件(100GB),只保留文件中频率大于1000的单词.我使用mapWordFrequency [word]> 1000检查文件中单词的频率.然而,结果是我的mapWordFrequency有10亿个映射而且我的文件很大,因此尝试检查mapWordFrequency [word]> 1000,文件中的每个单词都非常慢,需要2天以上.有人可以建议我如何提高上述代码的效率.
地图不适合我的RAM并且交换耗费了大量时间.
擦除频率<1000的所有单词是否有助于使用地图的擦除功能?