Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::set<Key,Compare,Allocator>::count

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

      [edit template]
       
       
       
       
      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.

      1) Returns the number of elements with keykey.This is either1 or0 since keys are always unique.
      2) Returns the number of elements with key that compares equivalent tox.
      This overload participates in overload resolution only ifCompare istransparent. It allows calling this function without constructing an instance ofKey.

      Contents

      [edit]Parameters

      key - key value of the elements to count
      x - alternative value to compare to the keys

      [edit]Return value

      Number of elements with key that compares equivalent tokey orx.

      [edit]Complexity

      Logarithmic in the size of the container plus linear in the number of elements found.

      Notes

      Feature-test macroValueStdFeature
      __cpp_lib_generic_associative_lookup201304L(C++14)Heterogeneous comparison lookup inassociative containers; overload(2)

      [edit]Example

      Run this code
      #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.

      [edit]See also

      finds element with specific key
      (public member function)[edit]
      returns range of elements matching a specific key
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/set/count&oldid=122672"

      [8]ページ先頭

      ©2009-2025 Movatter.jp