Ôn tập: tần suất từ
Thuộc phần Logic và luồng chương trình trong hành trình C++ của Coddy. Bài học 29 trên 56.
Thử thách
DễTạo một chương trình đếm tần suất xuất hiện của các từ trong một đoạn văn bản bằng std::map. Chương trình sẽ theo dõi số lần mỗi từ riêng biệt xuất hiện, sau đó báo cáo tần suất của một từ cụ thể.
Chương trình sẽ nhận các đầu vào sau:
- Một số nguyên
nbiểu thị số từ trong văn bản - Tiếp theo là
nchuỗi biểu thị các từ trong văn bản - Một chuỗi biểu thị từ cần kiểm tra tần suất
Chương trình cần:
- Tạo một
std::map<std::string, int>có tênwordCount - Đọc số lượng từ
- Với mỗi từ, đọc từ đó và cập nhật số đếm trong từ điển bằng toán tử ngoặc vuông và phép tăng
- Đọc từ cần kiểm tra
- In tần suất của từ cần kiểm tra theo định dạng bên dưới
Dùng định dạng đầu ra chính xác sau:
The word "[target_word]" appears [frequency] timesNếu từ cần kiểm tra không tồn tại trong từ điển, truy cập từ đó bằng toán tử ngoặc vuông sẽ tự động tạo một mục với số đếm là 0, vì vậy bạn có thể in tần suất an toàn mà không cần kiểm tra từ đó có tồn tại trước hay không. Dùng wordCount[word]++ để tăng số đếm cho mỗi từ khi đọc từ đó. Thao tác này sẽ tạo mục mới với số đếm là 1 cho từ mới hoặc tăng số đếm hiện có của những từ đã gặp.
Tự làm thử
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
// Đọc số lượng từ
int n;
cin >> n;
// Tạo map để lưu số lần xuất hiện của từng từ
map<string, int> wordCount;
// TODO: Viết code của bạn ở đây
// Đọc n từ và cập nhật số lần xuất hiện của chúng trong map
// Sau đó đọc từ cần tìm và in ra số lần xuất hiện của từ đó
return 0;
}Tất cả bài học trong Logic và luồng chương trình
1Con trỏ và bộ nhớ
Con trỏ là gì?Toán tử lấy địa chỉToán tử giải tham chiếuCon trỏ nullCon trỏ và mảngBộ nhớ động với newGiải phóng bộ nhớ với deleteÔn tập: luyện tập về con trỏ4Ánh xạ (cặp khóa-giá trị)
Giới thiệu std::mapTạo ánh xạTruy cập và chỉnh sửa giá trịKiểm tra khóaXóa các cặpDuyệt qua ánh xạÔn tập: tần suất từ2Vector (mảng động)
Giới thiệu std::vectorTạo vectorThêm phần tửTruy cập phần tửKích thước vectorDuyệt bằng vòng lặp forVòng lặp for dựa trên phạm viXóa phần tửÔn tập: các thao tác với vector5Dự án: Công cụ quản lý hàng tồn kho
Thiết lập dự ánThêm và cập nhật mặt hàng3Dự án: Công cụ danh sách công việc
Tổng quan dự ánThêm công việc6Tập hợp (các phần tử duy nhất)
Giới thiệu std::setTạo tập hợp và thêm phần tửKiểm tra phần tửXóa phần tửDuyệt qua tập hợpÔn tập: các số duy nhấtTự luyện tập: Trình biên dịch C++ online