首页 理论教育 零基础C++从入门到精通

零基础C++从入门到精通

时间:2023-08-20 理论教育 版权反馈
【摘要】:我们来看看下面的这个示例:动手写12.7.3动手写12.7.3展示了map在词频统计中的应用。运行结果如图12.7.4所示:图12.7.4词频统计在本示例中,我们先从文件名固定为“file.txt”的文件中读取文本,接着遍历所有单词,并在map中更新词频信息。运行结果如图12.7.5所示:图12.7.5利用map翻译在这个示例中,map的键和值分别对应着西班牙语单词和英语单词,相当于是字典。

零基础C++从入门到精通

由于map在已知键的时候查找得很快,它适合作为算法中辅助查找数据的数据结构。我们可以使用map轻松实现词频统计或其他的频率统计,做法就是把单词作为键,而把词频作为值。我们来看看下面的这个示例:

动手写12.7.3

动手写12.7.3展示了map在词频统计中的应用。运行结果如图12.7.4所示:

图12.7.4 词频统计

在本示例中,我们先从文件名固定为“file.txt”的文件中读取文本(读者需自行创建此文件到12.7.3.cpp的同一目录下),接着遍历所有单词,并在map中更新词频信息。由于读取map的时候会自动把初始化之前不存在的键所对应的值初始化为0,因此在第一次看到一个单词的时候,使用简洁的“wordFreq[word]++”也可以将单词的词频初始化为1。

map可以翻译成“映射”,也就是一一对应的关系,因此一切需要找到这种一一对应关系的情况都可以使用map,语言的翻译就是一个很好的例子。在不考虑语法与语序的情况下,我们可以为一个句子建立一个string映射到string的map,将源语言的词汇映射到翻译目标语言的词汇。下面我们来看一个将西班牙语翻译成英语的示例:(www.xing528.com)

动手写12.7.4

动手写12.7.4展示了利用map翻译自然语言的用法。运行结果如图12.7.5所示:

图12.7.5 利用map翻译

在这个示例中,map的键和值分别对应着西班牙语单词和英语单词,相当于是字典。在建立好这字典后,对于输入的西班牙语句子,我们只要查询键对应的值并打印出来,就达到了翻译的效果。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈