diff options
Diffstat (limited to 'klm/util/probing_hash_table.hh')
| -rw-r--r-- | klm/util/probing_hash_table.hh | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/klm/util/probing_hash_table.hh b/klm/util/probing_hash_table.hh index 3354b68e..6780489d 100644 --- a/klm/util/probing_hash_table.hh +++ b/klm/util/probing_hash_table.hh @@ -8,6 +8,7 @@  #include <functional>  #include <assert.h> +#include <stdint.h>  namespace util { @@ -42,8 +43,8 @@ template <class EntryT, class HashT, class EqualT = std::equal_to<typename Entry      typedef EqualT Equal;    public: -    static std::size_t Size(std::size_t entries, float multiplier) { -      std::size_t buckets = std::max(entries + 1, static_cast<std::size_t>(multiplier * static_cast<float>(entries))); +    static uint64_t Size(uint64_t entries, float multiplier) { +      uint64_t buckets = std::max(entries + 1, static_cast<uint64_t>(multiplier * static_cast<float>(entries)));        return buckets * sizeof(Entry);      } @@ -125,6 +126,11 @@ template <class EntryT, class HashT, class EqualT = std::equal_to<typename Entry        }          } +    void Clear(Entry invalid) { +      std::fill(begin_, end_, invalid); +      entries_ = 0; +    } +    private:      MutableIterator begin_;      std::size_t buckets_; | 
