第22课:综合实战:单词计数
进度 0/24
🔢
综合实战:单词计数
词频统计之王,一map定乾坤!
📖知识引入
📥需求分析
读入一堆单词,统计每个单词出现次数并按序输出
➕见词加一
cnt[word]++:键不存在时自动建0再加1,一行代码核心逻辑
🔤自动排序
map内部按键从小到大排好,遍历即得有序结果
⚡复杂度优势
每个单词O(log n)入库,比双重循环两两比对快得多
💡
cnt[word]++是词频统计的灵魂:map遇到新键自动初始化为0,大胆加就行
🔍单词计数完整程序
map<string, int> cnt;
string word;
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> word;
cnt[word]++; // 新词自动从0变1,老词累加
}
// map按键自动排好序,遍历输出
for (auto& p : cnt) {
cout << p.first << " 出现 " << p.second << " 次" << endl;
}
// 输入: apple banana apple
// 输出: apple 出现 2 次 / banana 出现 1 次一行cnt[word]++完成统计,map自动排序输出
🎯小测验
第1题:统计词频的核心一行代码是?
第2题:map遍历输出词频时结果的特点是?
第3题:第一次执行cnt["new"]++后,cnt["new"]的值是?
📝本课知识点
- ✓cnt[word]++一词一行
- ✓map遍历按键有序
- ✓词频统计是map看家本领
第22课完成!继续探索下一课吧 🚀
