__iterator__ hashtable<_Val,_Key,_HF,_ExK,_EqK,_All> ::insert_equal_noresize(const __value_type__& __obj) { const size_type __n = _M_bkt_num(__obj); _Node* __first = (_Node*)_M_buckets[__n]; for (_Node* __cur = __first; __cur; __cur = __cur->_M_next) if (_M_equals(_M_get_key(__cur->_M_val), _M_get_key(__obj))) { _Node* __tmp = _M_new_node(__obj); __tmp->_M_next = __cur->_M_next; __cur->_M_next = __tmp; ++_M_num_elements._M_data; return iterator(__tmp, this); } _Node* __tmp = _M_new_node(__obj); __tmp->_M_next = __first; _M_buckets[__n] = __tmp; ++_M_num_elements._M_data; return iterator(__tmp, this); }
__reference__ hashtable<_Val,_Key,_HF,_ExK,_EqK,_All>::_M_insert(const value_type& __obj) { resize(_M_num_elements._M_data + 1); size_type __n = _M_bkt_num(__obj); _Node* __first = (_Node*)_M_buckets[__n]; _Node* __tmp = _M_new_node(__obj); __tmp->_M_next = __first; _M_buckets[__n] = __tmp; ++_M_num_elements._M_data; return __tmp->_M_val; }
pair< _Ht_iterator<_Val, _Nonconst_traits<_Val>, _Key, _HF, _ExK, _EqK, _All> , bool> hashtable<_Val,_Key,_HF,_ExK,_EqK,_All> ::insert_unique_noresize(const __value_type__& __obj) { const size_type __n = _M_bkt_num(__obj); _Node* __first = (_Node*)_M_buckets[__n]; for (_Node* __cur = __first; __cur; __cur = __cur->_M_next) if (_M_equals(_M_get_key(__cur->_M_val), _M_get_key(__obj))) return pair<iterator, bool>(iterator(__cur, this), false); _Node* __tmp = _M_new_node(__obj); __tmp->_M_next = __first; _M_buckets[__n] = __tmp; ++_M_num_elements._M_data; return pair<iterator, bool>(iterator(__tmp, this), true); }
__reference__ hashtable<_Val,_Key,_HF,_ExK,_EqK,_All>::find_or_insert(const __value_type__& __obj) { resize(_M_num_elements._M_data + 1); size_type __n = _M_bkt_num(__obj); _Node* __first = (_Node*)_M_buckets[__n]; for (_Node* __cur = __first; __cur; __cur = __cur->_M_next) if (_M_equals(_M_get_key(__cur->_M_val), _M_get_key(__obj))) return __cur->_M_val; _Node* __tmp = _M_new_node(__obj); __tmp->_M_next = __first; _M_buckets[__n] = __tmp; ++_M_num_elements._M_data; return __tmp->_M_val; }