std::map::count
#include <map>
size_type count(const key_type& key) const;
Đếm số lượng phần tử có key
bằng với giá trị key
cho trước trong std::map. Tuy nhiên, vì std::map chỉ lưu trữ các phần tử với key
duy nhất, hàm count()
sẽ chỉ trả về 0 (nếu không tìm thấy) hoặc 1 (nếu tìm thấy).
Tham số
key
- Giá trị của
key
cần đếm.
Giá trị trả về
size_type
- Trả về số lượng phần tử có
key
bằngkey
. Trong std::map, giá trị này sẽ luôn là 0 hoặc 1 vì cáckey
trong map là duy nhất.
Đặc điểm
- Kiểm tra sự tồn tại:
count()
thường được sử dụng để kiểm tra xem mộtkey
có tồn tại trong std::map hay không, thay vì thực sự đếm số lần xuất hiện (vìkey
luôn là duy nhất). - const:
count()
là một hàmconst
, nghĩa là nó không thay đổi trạng thái của std::map. - Phân biệt với
find()
:find()
trả về iterator trỏ đến phần tử tìm thấy (hoặcend()
nếu không tìm thấy), trong khicount()
chỉ trả về số lượng phần tử cókey
bằngkey
(0 hoặc 1). - Không ném ngoại lệ: Hàm
count()
được quy định không ném ra ngoại lệ. - Chỉ trả về 0 hoặc 1: Do std::map đảm bảo tính duy nhất của các
key
,count()
luôn trả về 0 hoặc 1. - Độ phức tạp: Độ phức tạp của
count()
làO(log n)
, với n là số phần tử trong std::map.
Ví dụ
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> mymap = {
{"apple", 1},
{"banana", 2},
{"orange", 3}
};
// Kiểm tra xem map có chứa phần tử có key "banana" hay không
if (mymap.count("banana")) {
std::cout << "Key 'banana' exists in the map\n"; // Output: Key 'banana' exists in the map
} else {
std::cout << "Key 'banana' does not exist in the map\n";
}
// Kiểm tra xem map có chứa phần tử có key "grape" hay không
if (mymap.count("grape")) {
std::cout << "Key 'grape' exists in the map\n";
} else {
std::cout << "Key 'grape' does not exist in the map\n"; // Output: Key 'grape' does not exist in the map
}
return 0;
}
Các hàm liên quan
find | Tìm kiếm một phần tử có key bằng với giá trị key cho trước trong std::map |
size | Trả về số lượng phần tử (cặp key-value ) hiện có trong std::map |
equal_range | Trả về một cặp iterator xác định phạm vi các phần tử trong std::map có key bằng với giá trị key cho trước |