std::unordered_map::count
#include <unordered_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::unordered_map. Tuy nhiên, vì std::unordered_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ằng
key
. Trong std::unordered_map, giá trị này sẽ luôn là 0 hoặc 1 vì các key 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ột key có tồn tại trong std::unordered_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::unordered_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::unordered_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 trung bình của
count()
làO(1)
- thời gian hằng số. Trong trường hợp xấu nhất (xung đột hash nhiều), độ phức tạp có thể lên tớiO(n)
, với n là số phần tử trong std::unordered_map.
Ví dụ
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> myumap = {
{"apple", 1},
{"banana", 2},
{"orange", 3}
};
// Kiểm tra xem map có chứa phần tử có key "banana" hay không
if (myumap.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 (myumap.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::unordered_map |
[] | Truy cập phần tử có key tương ứng |
at | Truy cập phần tử có key cho trước |
size | Trả về số lượng phần tử hiện có trong std::unordered_map |