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

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ằng key. Trong std::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::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::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::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 của count()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

findTìm kiếm một phần tử có key bằng với giá trị key cho trước trong std::map
sizeTrả về số lượng phần tử (cặp key-value) hiện có trong std::map
equal_rangeTrả về một cặp iterator xác định phạm vi các phần tử trong std::mapkey bằng với giá trị key cho trước