da29608a7a
2011-11-23 François Dumont <fdumont@gcc.gnu.org> PR libstdc++/41975 * include/bits/hashtable.h (_Hashtable<>): Major data model modification to limit performance impact of empty buckets in erase(iterator) implementation. * include/bits/hashtable_policy.h (_Hashtable_iterator, _Hashtable_const_iterator): Remove not used anymore. * include/bits/hashtable_policy.h (_Prime_rehash_policy): Remove _M_grow_factor, just use natural evolution of prime numbers. Add _M_prev_size to know when the number of buckets can be reduced. * include/bits/unordered_set.h (__unordered_set<>, __unordered_multiset<>), unordered_map.h (__unordered_map<>, __unordered_multimap<>): Change default value of cache hash code template parameter, false for integral types with noexcept hash functor, true otherwise. * include/debug/unordered_map, unordered_set: Adapt transformation from iterator/const_iterator to respectively local_iterator/const_local_iterator. * testsuite/performance/23_containers/copy_construct/unordered_set.cc: New. * testsuite/23_containers/unordered_set/instantiation_neg.cc: New. * testsuite/23_containers/unordered_set/hash_policy/rehash.cc: New. * testsuite/23_containers/unordered_multiset/cons/copy.cc: New. * testsuite/23_containers/unordered_multiset/erase/1.cc, 24061-multiset.cc: Add checks on the number of bucket elements. * testsuite/23_containers/unordered_multiset/insert/multiset_range.cc, multiset_single.cc, multiset_single_move.cc: Likewise. From-SVN: r181677 |
||
---|---|---|
.. | ||
algorithmfwd.h | ||
alloc_traits.h | ||
allocator.h | ||
atomic_base.h | ||
basic_ios.h | ||
basic_ios.tcc | ||
basic_string.h | ||
basic_string.tcc | ||
boost_concept_check.h | ||
c++0x_warning.h | ||
c++config | ||
char_traits.h | ||
codecvt.h | ||
concept_check.h | ||
cpp_type_traits.h | ||
deque.tcc | ||
forward_list.h | ||
forward_list.tcc | ||
fstream.tcc | ||
functexcept.h | ||
functional_hash.h | ||
gslice_array.h | ||
gslice.h | ||
hashtable_policy.h | ||
hashtable.h | ||
indirect_array.h | ||
ios_base.h | ||
istream.tcc | ||
list.tcc | ||
locale_classes.h | ||
locale_classes.tcc | ||
locale_facets_nonio.h | ||
locale_facets_nonio.tcc | ||
locale_facets.h | ||
locale_facets.tcc | ||
localefwd.h | ||
mask_array.h | ||
move.h | ||
ostream_insert.h | ||
ostream.tcc | ||
postypes.h | ||
ptr_traits.h | ||
random.h | ||
random.tcc | ||
range_access.h | ||
regex_compiler.h | ||
regex_constants.h | ||
regex_cursor.h | ||
regex_error.h | ||
regex_grep_matcher.h | ||
regex_grep_matcher.tcc | ||
regex_nfa.h | ||
regex_nfa.tcc | ||
regex.h | ||
shared_ptr_base.h | ||
shared_ptr.h | ||
slice_array.h | ||
sstream.tcc | ||
stl_algo.h | ||
stl_algobase.h | ||
stl_bvector.h | ||
stl_construct.h | ||
stl_deque.h | ||
stl_function.h | ||
stl_heap.h | ||
stl_iterator_base_funcs.h | ||
stl_iterator_base_types.h | ||
stl_iterator.h | ||
stl_list.h | ||
stl_map.h | ||
stl_multimap.h | ||
stl_multiset.h | ||
stl_numeric.h | ||
stl_pair.h | ||
stl_queue.h | ||
stl_raw_storage_iter.h | ||
stl_relops.h | ||
stl_set.h | ||
stl_stack.h | ||
stl_tempbuf.h | ||
stl_tree.h | ||
stl_uninitialized.h | ||
stl_vector.h | ||
stream_iterator.h | ||
streambuf_iterator.h | ||
streambuf.tcc | ||
stringfwd.h | ||
unique_ptr.h | ||
unordered_map.h | ||
unordered_set.h | ||
uses_allocator.h | ||
valarray_after.h | ||
valarray_array.h | ||
valarray_array.tcc | ||
valarray_before.h | ||
vector.tcc |