1 // Copyright (C) 2003 Davis E. King (davis@dlib.net) 2 // License: Boost Software License See LICENSE.txt for the full license. 3 #ifndef DLIB_HASH_MAp_ 4 #define DLIB_HASH_MAp_ 5 6 #include "hash_map/hash_map_kernel_1.h" 7 #include "hash_map/hash_map_kernel_c.h" 8 9 #include "hash_table.h" 10 #include "algs.h" 11 12 #include "algs.h" 13 #include <functional> 14 15 namespace dlib 16 { 17 18 template < 19 typename domain, 20 typename range, 21 unsigned long expnum, 22 typename mem_manager = default_memory_manager, 23 typename compare = std::less<domain> 24 > 25 class hash_map 26 { hash_map()27 hash_map() {} 28 29 typedef typename hash_table<domain,range,mem_manager,compare>::kernel_1a 30 hash_table_1; 31 typedef typename hash_table<domain,range,mem_manager,compare>::kernel_2a 32 hash_table_2; 33 typedef typename hash_table<domain,range,mem_manager,compare>::kernel_2b 34 hash_table_3; 35 36 public: 37 38 //----------- kernels --------------- 39 40 // kernel_1a 41 typedef hash_map_kernel_1<domain,range,expnum,hash_table_1,mem_manager> 42 kernel_1a; 43 typedef hash_map_kernel_c<kernel_1a> 44 kernel_1a_c; 45 46 // kernel_1b 47 typedef hash_map_kernel_1<domain,range,expnum,hash_table_2,mem_manager> 48 kernel_1b; 49 typedef hash_map_kernel_c<kernel_1b> 50 kernel_1b_c; 51 52 // kernel_1c 53 typedef hash_map_kernel_1<domain,range,expnum,hash_table_3,mem_manager> 54 kernel_1c; 55 typedef hash_map_kernel_c<kernel_1c> 56 kernel_1c_c; 57 58 59 }; 60 } 61 62 #endif // DLIB_HASH_MAp_ 63 64