24 #ifndef __TBB_concurrent_unordered_map_H 25 #define __TBB_concurrent_unordered_map_H 32 namespace interface5 {
35 template<
typename Key,
typename T,
typename Hash_compare,
typename Allocator,
bool Allow_multimapping>
42 typedef typename Allocator::template rebind<value_type>::other
allocator_type;
48 template<
class Type1,
class Type2>
56 template <
typename Key,
typename T,
typename Hasher = tbb::tbb_hash<Key>,
typename Key_equality = std::equal_to<Key>,
57 typename Allocator = tbb::tbb_allocator<std::pair<const Key, T> > >
59 public internal::concurrent_unordered_base< concurrent_unordered_map_traits<Key, T,
60 internal::hash_compare<Key, Hasher, Key_equality>, Allocator, false> >
63 typedef internal::hash_compare<Key, Hasher, Key_equality>
hash_compare;
65 typedef internal::concurrent_unordered_base< traits_type >
base_type;
72 using base_type::find;
73 using base_type::insert;
84 typedef typename base_type::pointer
pointer;
115 template <
typename Iterator>
124 template <
typename Iterator>
131 template <
typename Iterator>
139 #if __TBB_INITIALIZER_LISTS_PRESENT 146 insert(il.begin(),il.end());
152 insert(il.begin(), il.end());
159 insert(il.begin(), il.end());
162 #endif //# __TBB_INITIALIZER_LISTS_PRESENT 164 #if __TBB_CPP11_RVALUE_REF_PRESENT 165 #if !__TBB_IMPLICIT_MOVE_PRESENT 172 return static_cast<concurrent_unordered_map&>(base_type::operator=(table));
181 return static_cast<concurrent_unordered_map&>(base_type::operator=(
std::move(table)));
187 #endif //__TBB_CPP11_RVALUE_REF_PRESENT 203 return ((*where).second);
215 return ((*where).second);
227 return ((*where).second);
231 template <
typename Key,
typename T,
typename Hasher = tbb::tbb_hash<Key>,
typename Key_equality = std::equal_to<Key>,
232 typename Allocator = tbb::tbb_allocator<std::pair<const Key, T> > >
234 public internal::concurrent_unordered_base< concurrent_unordered_map_traits< Key, T,
235 internal::hash_compare<Key, Hasher, Key_equality>, Allocator, true> >
238 typedef internal::hash_compare<Key, Hasher, Key_equality>
hash_compare;
240 typedef internal::concurrent_unordered_base<traits_type>
base_type;
241 #if __TBB_EXTRA_DEBUG 246 using base_type::insert;
288 template <
typename Iterator>
297 template <
typename Iterator>
304 template <
typename Iterator>
312 #if __TBB_INITIALIZER_LISTS_PRESENT 319 insert(il.begin(),il.end());
325 insert(il.begin(), il.end());
332 insert(il.begin(), il.end());
335 #endif //# __TBB_INITIALIZER_LISTS_PRESENT 337 #if __TBB_CPP11_RVALUE_REF_PRESENT 338 #if !__TBB_IMPLICIT_MOVE_PRESENT 345 return static_cast<concurrent_unordered_multimap&>(base_type::operator=(table));
354 return static_cast<concurrent_unordered_multimap&>(base_type::operator=(
std::move(table)));
360 #endif //__TBB_CPP11_RVALUE_REF_PRESENT 368 using interface5::concurrent_unordered_map;
369 using interface5::concurrent_unordered_multimap;
373 #endif// __TBB_concurrent_unordered_map_H base_type::difference_type difference_type
base_type::const_reference const_reference
concurrent_unordered_multimap(concurrent_unordered_multimap &&table, const Allocator &a)
__TBB_IMPLICIT_MOVE_PRESENT
concurrent_unordered_multimap(size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
base_type::value_type value_type
base_type::allocator_type allocator_type
base_type::const_iterator const_local_iterator
base_type::pointer pointer
base_type::reference reference
iterator find(const key_type &key)
auto last(Container &c) -> decltype(begin(c))
concurrent_unordered_map(size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
concurrent_unordered_map(size_type n_of_buckets, const allocator_type &a)
concurrent_unordered_map_traits()
auto first(Container &c) -> decltype(begin(c))
base_type::allocator_type allocator_type
Class for determining type of std::allocator<T>::value_type.
base_type::pointer pointer
concurrent_unordered_multimap(std::initializer_list< value_type > il, size_type n_of_buckets, const allocator_type &a)
base_type::const_iterator const_local_iterator
internal::hash_compare< Key, Hasher, Key_equality > hash_compare
Allocator::template rebind< value_type >::other allocator_type
mapped_type & operator[](const key_type &key)
hash_compare my_hash_compare
base_type::iterator iterator
concurrent_unordered_multimap(const Allocator &a)
base_type::iterator iterator
base_type::reference reference
concurrent_unordered_map(size_type n_of_buckets, const hasher &a_hasher, const allocator_type &a)
Hash_compare hash_compare
base_type::const_reference const_reference
concurrent_unordered_multimap(const concurrent_unordered_multimap &table, const Allocator &a)
concurrent_unordered_map(const Allocator &a)
void move(tbb_thread &t1, tbb_thread &t2)
internal::hash_compare< Key, Hasher, Key_equality > hash_compare
static const Key & get_key(const std::pair< Type1, Type2 > &value)
base_type::iterator local_iterator
concurrent_unordered_map_traits< Key, T, hash_compare, Allocator, true > traits_type
concurrent_unordered_multimap(Iterator first, Iterator last, size_type n_of_buckets, const allocator_type &a)
base_type::iterator local_iterator
concurrent_unordered_base & operator=(const concurrent_unordered_base &right)
concurrent_unordered_map(std::initializer_list< value_type > il, size_type n_of_buckets, const hasher &a_hasher, const allocator_type &a)
concurrent_unordered_map(std::initializer_list< value_type > il, size_type n_of_buckets, const allocator_type &a)
concurrent_unordered_map(Iterator first, Iterator last, size_type n_of_buckets, const hasher &a_hasher, const allocator_type &a)
base_type::const_pointer const_pointer
base_type::value_type value_type
base_type::size_type size_type
concurrent_unordered_map(const concurrent_unordered_map &table, const Allocator &a)
base_type::const_iterator const_iterator
static const size_type initial_bucket_number
concurrent_unordered_map_traits< Key, T, hash_compare, Allocator, false > traits_type
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle * key
base_type::size_type size_type
std::pair< const Key, T > value_type
base_type::const_pointer const_pointer
concurrent_unordered_multimap(size_type n_of_buckets, const hasher &a_hasher, const allocator_type &a)
concurrent_unordered_map(concurrent_unordered_map &&table, const Allocator &a)
__TBB_IMPLICIT_MOVE_PRESENT
concurrent_unordered_map(Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long value
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp end
internal::concurrent_unordered_base< traits_type > base_type
mapped_type & at(const key_type &key)
concurrent_unordered_multimap(Iterator first, Iterator last, size_type n_of_buckets, const hasher &a_hasher, const allocator_type &a)
internal::concurrent_unordered_base< traits_type > base_type
concurrent_unordered_multimap(Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
concurrent_unordered_map_traits(const hash_compare &hc)
concurrent_unordered_multimap(std::initializer_list< value_type > il, size_type n_of_buckets, const hasher &a_hasher, const allocator_type &a)
base_type::difference_type difference_type
std::pair< iterator, bool > insert(const value_type &value)
concurrent_unordered_multimap(size_type n_of_buckets, const allocator_type &a)
void throw_exception(exception_id eid)
Versionless convenience wrapper for throw_exception_v4()
concurrent_unordered_map(Iterator first, Iterator last, size_type n_of_buckets, const allocator_type &a)
base_type::const_iterator const_iterator
const mapped_type & at(const key_type &key) const