(C++17) | ||||
| Sequence | ||||
(C++11) | ||||
(C++26) | ||||
(C++26) | ||||
(C++11) | ||||
| Associative | ||||
| Unordered associative | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
| Adaptors | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
| Views | ||||
(C++20) | ||||
(C++23) | ||||
| Tables | ||||
| Iterator invalidation | ||||
| Member function table | ||||
| Non-member function table |
| Member functions | |||||||
| Non-member functions | |||||||
| |||||||
| Deduction guides(C++17) | |||||||
size_type count(const Key& key)const; | (1) | (constexpr since C++26) |
template<class K> size_type count(const K& x)const; | (2) | (since C++14) (constexpr since C++26) |
Returns the number of elements with key that compares equivalent to the specified argument.
Compare istransparent. It allows calling this function without constructing an instance ofKey.Contents |
| key | - | key value of the elements to count |
| x | - | alternative value to compare to the keys |
Number of elements with key that compares equivalent tokey orx.
Logarithmic in the size of the container plus linear in the number of elements found.
| Feature-test macro | Value | Std | Feature |
|---|---|---|---|
__cpp_lib_generic_associative_lookup | 201304L | (C++14) | Heterogeneous comparison lookup inassociative containers; overload(2) |
#include <functional>#include <iostream>#include <set> struct S{int x; S(int i): x{i}{std::cout<<"S{"<< i<<"} ";}bool operator<(const R& s)const{return x< s.x;}}; struct R{int x; R(int i): x{i}{std::cout<<"R{"<< i<<"} ";}bool operator<(const R& r)const{return x< r.x;}}; bool operator<(const R& r,int i){return r.x< i;}bool operator<(int i,const R& r){return i< r.x;} int main(){std::set<int> t{3,1,4,1,5};std::cout<< t.count(1)<<", "<< t.count(2)<<".\n"; std::set<S> s{3,1,4,1,5};std::cout<<": "<< s.count(1)<<", "<< s.count(2)<<".\n";// Two temporary objects S{1} and S{2} were created.// Comparison function object is defaulted std::less<S>,// which is not transparent (has no “is_transparent” nested type). std::set<R,std::less<>> r{3,1,4,1,5};std::cout<<": "<< r.count(1)<<", "<< r.count(2)<<".\n";// C++14 heterogeneous lookup; temporary objects were not created.// Comparator std::less<void> has predefined “is_transparent”.}
Output:
1, 0.S{3} S{1} S{4} S{1} S{5} : S{1} 1, S{2} 0.R{3} R{1} R{4} R{1} R{5} : 1, 0.| finds element with specific key (public member function)[edit] | |
| returns range of elements matching a specific key (public member function)[edit] |