4 #ifndef UTILMM_UTILS_HASH_TABLE_HEADER 5 # define UTILMM_UTILS_HASH_TABLE_HEADER 16 namespace hash_toolbox {
18 template<
typename Value>
20 explicit node(Value
const &v,
node *n=0);
44 template<
typename Key,
typename Value,
45 class Extract,
class Hash,
class Equal>
60 typedef std::vector<node_type *> bucket_type;
102 size_type size()
const;
107 size_type max_size()
const;
142 const_iterator begin()
const;
150 const_iterator end()
const;
162 std::pair<iterator, iterator> equal_range(key_arg key);
167 std::pair< const_iterator,
168 const_iterator > equal_range(key_arg key)
const;
177 void erase(iterator
const &first, iterator
const &last);
190 std::pair<iterator, bool> insert_unique(value_arg v);
200 iterator insert_multiple(value_arg v);
210 size_type node_count, avg_bucket_count;
212 void resize(size_type size);
214 node_type *insert(node_type **helper, value_arg v);
216 static size_t hash_key(key_arg k, size_type mod);
217 static size_t hash_node(value_arg v, size_type mod);
218 static key_type
const &get_key(value_arg v);
220 static bucket_type copy_bucket(bucket_type
const &other);
222 size_t hash_node(value_arg v);
224 node_type **find_node(key_arg k);
225 node_type *find_node(key_arg k)
const;
227 template<
typename K,
typename V,
class Ex,
class H,
class Eq>
230 template<
typename K,
typename V,
class Ex,
class H,
class Eq>
237 # define IN_UTILMM_UTILS_HASH_TABLE_HEADER 238 #include "utilmm/hash/bits/table.tcc" 239 # undef IN_UTILMM_UTILS_HASH_TABLE_HEADER 240 #endif // UTILMM_UTILS_HASH_TABLE_HEADER Definition of iterator for hash containers.
void swap(const S data, S &buffer)
Definition: endian.hh:46
Definition: auto_flag.hh:6
Definition of utilmm::arg_traits class.
computed_type type
argument type
Definition: arg_traits.hh:38
Forward declaration of utilmm::hash.