Chuyển tới nội dung chính

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

  1. 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).
  2. const: count() là một hàm const, nghĩa là nó không thay đổi trạng thái của std::unordered_map.
  3. Phân biệt với find(): find() trả về iterator trỏ đến phần tử tìm thấy (hoặc end() nếu không tìm thấy), trong khi count() chỉ trả về số lượng phần tử có key bằng key (0 hoặc 1).
  4. Không ném ngoại lệ: Hàm count() được quy định không ném ra ngoại lệ.
  5. 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.
  6. Độ phức tạp: Độ phức tạp trung bình của count()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ới O(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

findTì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
atTruy cập phần tử có key cho trước
sizeTrả về số lượng phần tử hiện có trong std::unordered_map