Home | History | Annotate | Download | only in unord.set
      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 // <unordered_set>
     11 
     12 // template <class Value, class Hash = hash<Value>, class Pred = equal_to<Value>,
     13 //           class Alloc = allocator<Value>>
     14 // class unordered_set
     15 
     16 // size_type bucket(const key_type& __k) const;
     17 
     18 #include <unordered_set>
     19 #include <cassert>
     20 
     21 #include "../../min_allocator.h"
     22 
     23 int main()
     24 {
     25     {
     26         typedef std::unordered_set<int> C;
     27         typedef int P;
     28         P a[] =
     29         {
     30             P(1),
     31             P(2),
     32             P(3),
     33             P(4),
     34             P(1),
     35             P(2)
     36         };
     37         const C c(std::begin(a), std::end(a));
     38         size_t bc = c.bucket_count();
     39         assert(bc >= 5);
     40         for (size_t i = 0; i < 13; ++i)
     41             assert(c.bucket(i) == i % bc);
     42     }
     43 #if __cplusplus >= 201103L
     44     {
     45         typedef std::unordered_set<int, std::hash<int>, std::equal_to<int>, min_allocator<int>> C;
     46         typedef int P;
     47         P a[] =
     48         {
     49             P(1),
     50             P(2),
     51             P(3),
     52             P(4),
     53             P(1),
     54             P(2)
     55         };
     56         const C c(std::begin(a), std::end(a));
     57         size_t bc = c.bucket_count();
     58         assert(bc >= 5);
     59         for (size_t i = 0; i < 13; ++i)
     60             assert(c.bucket(i) == i % bc);
     61     }
     62 #endif
     63 }
     64