std::unordered_set::count
#include <unordered_set>
Đếm số lượng phần tử có giá trị bằng với giá trị cho trước trong std::unordered_set. Tuy nhiên, vì std::unordered_set chỉ lưu trữ các phần tử 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).
size_type count(const key_type& key) const;
Tham số
key
- Giá trị của phần tử cần đếm.
Giá trị trả về
size_type
- Trả về số lượng phần tử có giá trị bằng
key. Trong std::unordered_set, giá trị này sẽ luôn là 0 hoặc 1 vì các phần tử trong set 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 phần tử có tồn tại trong std::unordered_set hay không, thay vì thực sự đếm số lần xuất hiện (vì giá trị luôn là 0 hoặc 1). - const:
count()là một hàmconst, nghĩa là nó không thay đổi trạng thái của std::unordered_set. - 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ó giá trị bằng key (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_set đảm bảo tính duy nhất của các phần tử,
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_set.
Ví dụ
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> myset = {10, 20, 30, 40, 50};
// Kiểm tra xem set có chứa phần tử có giá trị 30 hay không
if (myset.count(30)) {
std::cout << "Element 30 exists in the set\n"; // Output: Element 30 exists in the set
} else {
std::cout << "Element 30 does not exist in the set\n";
}
// Kiểm tra xem set có chứa phần tử có giá trị 60 hay không
if (myset.count(60)) {
std::cout << "Element 60 exists in the set\n";
} else {
std::cout << "Element 60 does not exist in the set\n"; // Output: Element 60 does not exist in the set
}
return 0;
}
Các hàm liên quan
| find | Tìm kiếm một phần tử có giá trị bằng với giá trị cho trước trong std::unordered_set |
| size | Trả về số lượng phần tử hiện có trong std::unordered_set |