Changeset 3be3752 in mainline


Ignore:
Timestamp:
2018-07-05T21:41:21Z (6 years ago)
Author:
Dzejrou <dzejrou@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ed9df7d
Parents:
108ad4cf
git-author:
Dzejrou <dzejrou@…> (2018-04-25 00:36:26)
git-committer:
Dzejrou <dzejrou@…> (2018-07-05 21:41:21)
Message:

cpp: added aux functions and rehashing to insertion when needed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/cpp/include/internal/hash_table.hpp

    r108ad4cf r3be3752  
    787787
    788788                ++size_;
    789                 // TODO: if we go over max load factor, rehash
     789
     790                rehash_if_needed();
    790791            }
    791792
     
    802803
    803804                ++size_;
    804                 // TODO: if we go over max load factor, rehash
     805
     806                rehash_if_needed();
    805807            }
    806808
     
    817819
    818820                ++size_;
    819                 // TODO: if we go over max load factor, rehash
     821
     822                rehash_if_needed();
    820823            }
    821824
     
    11171120            }
    11181121
     1122            void rehash_if_needed()
     1123            {
     1124                if (size_ > max_load_factor_ * bucket_count_)
     1125                    rehash(bucket_count_ * bucket_count_growth_factor_);
     1126            }
     1127
     1128            void increment_size()
     1129            {
     1130                ++size_;
     1131            }
     1132
    11191133        private:
    11201134            hash_table_bucket<value_type, size_type>* table_;
     
    11261140            float max_load_factor_;
    11271141
     1142            static constexpr float bucket_count_growth_factor_{1.25};
     1143
    11281144            size_type get_bucket_idx_(const key_type& key) const
    11291145            {
Note: See TracChangeset for help on using the changeset viewer.