Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::hash<std::vector<bool>>

      From cppreference.com
      <cpp‎ |container‎ |vector bool
       
       
       
      std::vector<bool>
      Member types
      Member functions
      Non-member functions
      (until C++20)(until C++20)(until C++20)(until C++20)(until C++20)
      Helper classes
      hash<std::vector<bool>>
      (C++11)
      Deduction guides(C++17)
       
      Defined in header<vector>
      template<class Allocator>
      struct hash<std::vector<bool, Allocator>>;
      (since C++11)

      The template specialization ofstd::hash forstd::vector<bool> allows users to obtain hashes of objects of typestd::vector<bool>.

      [edit]Example

      Run this code
      #include <iostream>#include <unordered_set>#include <vector> using vb=std::vector<bool>; vb to_vector_bool(unsigned n){    vb v;do{        v.push_back(n&1);        n>>=1;}while(n);return v;} auto print(const vb& v,bool new_line=true){for(std::cout<<"{ ";constbool e: v)std::cout<< e<<' ';std::cout<<'}'<<(new_line?'\n':' ');} int main(){for(auto i{0U}; i!=8;++i){std::cout<<std::hex<<std::uppercase;        vb v= to_vector_bool(i);std::cout<<std::hash<vb>{}(v)<<' '<<std::dec;        print(v);} // std::hash for vector<bool> makes it possible to keep them in// unordered_* associative containers, such as unordered_set. std::unordered_set v{vb{0}, vb{0,0}, vb{1}, vb{1}, vb{1,0}, vb{1,1}}; for(vbconst& e: v)        print(e,0);std::cout<<'\n';}

      Possible output:

      6D09EE26D5863619 { 0 }3C27D9F591D20E49 { 1 }E74D3F72B7599C63 { 0 1 }EE3BE81F55123770 { 1 1 }3AAD2A2EDBEC6C35 { 0 0 1 }EB057F773CB64C43 { 1 0 1 }6E1354730102BE00 { 0 1 1 }E2E622597C18899D { 1 1 1 }{ 1 1 } { 1 0 } { 1 } { 0 0 } { 0 }

      [edit]See also

      (C++11)
      hash function object
      (class template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/vector_bool/hash&oldid=165918"

      [8]ページ先頭

      ©2009-2025 Movatter.jp