Ôn tập: các số duy nhấ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 40 trên 56.
Thử thách
DễTạo một chương trình đọc một dãy số nguyên (integer) và dùng std::set để tự động loại bỏ các giá trị trùng lặp, sau đó in ra số lượng số không trùng lặp. Qua đó, bạn sẽ thấy ưu điểm chính của tập hợp (set): lưu giữ các phần tử (element) không trùng lặp mà không cần tự kiểm tra giá trị trùng.
Chương trình sẽ nhận các đầu vào sau:
- Một số nguyên
ncho biết có bao nhiêu số sẽ được nhập - Sau đó là
nsố nguyên cần xử lý
Chương trình cần:
- Tạo một
std::set<int>rỗng - Đọc số lượng số nguyên sẽ được nhập
- Dùng một vòng lặp để đọc từng số nguyên và chèn số đó vào tập hợp bằng phương thức
.insert() - Sau khi xử lý tất cả các số, dùng phương thức
.size()để lấy số lượng số không trùng lặp - In ra kết quả cho biết có bao nhiêu số không trùng lặp
Dùng chính xác định dạng đầu ra sau:
Unique numbers: [count]Tập hợp sẽ tự động loại bỏ các giá trị trùng lặp. Khi bạn thử chèn một số đã có trong tập hợp, tập hợp sẽ bỏ qua thao tác chèn trùng đó. Vì vậy, bạn không cần tự kiểm tra giá trị trùng lặp; chỉ cần chèn tất cả các số và để tập hợp tự đảm bảo tính duy nhất. Kích thước cuối cùng của tập hợp chính là số lượng số khác nhau trong đầu vào.
Tự làm thử
#include <iostream>
#include <set>
using namespace std;
int main() {
// Đọc số lượng số nguyên
int n;
cin >> n;
// Tạo một tập hợp rỗng để lưu các số nguyên không trùng lặp
set<int> uniqueNumbers;
// TODO: Viết code của bạn ở đây
// Dùng vòng lặp để đọc n số nguyên và thêm chúng vào tập hợp
// In kết quả ra
cout << "Unique numbers: " << uniqueNumbers.size() << endl;
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ỏ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