Trong bài viết này, chúng ta sẽ thảo luận về cách hoạt động, cú pháp và ví dụ của hàm map::count() trong C++ STL.
Map trong C++ STL là gì?
Map là container liên kết (associative container), cho phép lưu trữ các phần tử được hình thành từ cặp key (khóa) và mapped value (giá trị ánh xạ) theo một thứ tự cụ thể. Trong map, dữ liệu luôn được sắp xếp nội bộ dựa trên key. Các giá trị trong map được truy xuất thông qua key duy nhất của chúng.
map::count() là gì?
map::count() là hàm nằm trong header <map>. Hàm này đếm số phần tử có key cụ thể. Vì map không cho phép key trùng lặp, hàm này chỉ trả về:
- 1 nếu key tồn tại trong container.
- 0 nếu key không tồn tại.
Cú pháp
map_name.count(key);
Tham số
Hàm nhận một tham số là key cần kiểm tra trong container.
Giá trị trả về
Trả về kiểu size_type (thường là 0 hoặc 1): 1 nếu key tồn tại, 0 nếu không.
Ví dụ minh họa
Input (key, Element)
(2,70), (3,30), (4,90), (5,100)
Output
Key 5 is present. Key 6 is not present.
Cách tiếp cận
- Khởi tạo container map.
- Chèn các phần tử với key tương ứng.
- Kiểm tra key mong muốn có tồn tại bằng
count().
Ví dụ 1: Kiểm tra key nguyên
#include <iostream>
#include <map>
using namespace std;
int main() {
map<int, int> mp;
mp.insert({1, 40});
mp.insert({3, 20});
mp.insert({2, 30});
mp.insert({5, 10});
mp.insert({4, 50});
if (mp.count(1))
cout << "Key 1 is present\n";
else
cout << "Key 1 is not present\n";
if (mp.count(7))
cout << "Key 7 is Present\n";
else
cout << "Key 7 is not Present\n";
return 0;
}
Kết quả
Key 1 is present Key 7 is not present
Ví dụ 2: Duyệt và kiểm tra các key ký tự
#include <iostream>
#include <map>
using namespace std;
int main() {
map<char, int> mp;
mp['a'] = 2;
mp['c'] = 3;
mp['e'] = 1;
for (char i = 'a'; i <= 'f'; i++) {
cout << i;
if (mp.count(i) > 0)
cout << " is an element of mp.\n";
else
cout << " is not an element of mp.\n";
}
return 0;
}
Kết quả
a is an element of mp. b is not an element of mp. c is an element of mp. d is not an element of mp. e is an element of mp. f is not an element of mp.
Lưu ý: Đối với map, count() tương đương với kiểm tra find() != end(), nhưng count() ngắn gọn hơn khi chỉ cần biết có/không.