# std::unordered_set<Key,Hash,KeyEqual,Allocator>::count

From cppreference.com
< cpp‎ | container‎ | unordered set

size_type count( const Key& key ) const; | (1) | (since C++11)
template< class K > size_type count( const K& x ) const; | (2) | (since C++20)

1) Returns the number of elements with key that compares equal to the specified argument `key`, which is either 1 or 0 since this container does not allow duplicates.
2) Returns the number of elements with key that compares equivalent to the specified argument `x`. This overload participates in overload resolution only if Hash::is_transparent and KeyEqual::is_transparent are valid and each denotes a type. This assumes that such `Hash` is callable with both `K` and `Key` type, and that the `KeyEqual` is transparent, which, together, allows calling this function without constructing an instance of `Key`.

### Parameters

key | - | key value of the elements to count
x | - | a value of any type that can be transparently compared with a key

### Return value

1) Number of elements with key `key`, that is either 1 or 0.
2) Number of elements with key that compares equivalent to `x`.

### Complexity

Constant on average, worst case linear in the size of the container.

### Notes

Feature-test macro | Comment
--- | ---
`__cpp_lib_generic_unordered_lookup` | for overload (2)

### Example

Run this code

    #include <algorithm>
    #include <iostream>
    #include <unordered_set>

    int main() {
        std::unordered_set set{2, 7, 1, 8, 2, 8, 1, 8, 2, 8};

        std::cout << "The set is: ";
        for (int e: set) { std::cout << e << ' '; }

        const auto [min, max] = std::ranges::minmax(set);

        std::cout << "\nNumbers from " << min << " to " << max << " that are in the set: ";
        for (int i{min}; i <= max; ++i) {
            if (set.count(i) == 1) {
                std::cout << i << ' ';
            }
        }
    }

Possible output:

    The set is: 8 1 7 2
    Numbers from 1 to 8 that are in the set: 1 2 7 8

### See also

find (C++11) | finds element with specific key (public member function)
contains (C++20) | checks if the container contains element with specific key (public member function)
equal_range (C++11) | returns range of elements matching a specific key (public member function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/unordered_set/count&oldid=135901"