<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
81 size_t__bucket = _M_ht->_M_bkt_num(_M_cur->_M_val);
83__h_sz = this->_M_ht->bucket_count();
86 while(__i==0 && ++__bucket < __h_sz)
87__i = (
_Node*)_M_ht->_M_buckets[__bucket];
91 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
98 return(pos == __last ? *(__last - 1) : *pos);
101 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
110 for(
size_t__n = 0; __n < __ht1.
bucket_count(); ++__n) {
113 for( ; __cur1 && __cur2 && __cur1->
_M_val== __cur2->
_M_val;
116 if(__cur1 || __cur2)
122 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
123pair< _Ht_iterator<_Val, _Nonconst_traits<_Val>, _Key, _HF, _ExK, _EqK, _All> ,
bool>
130 for(
_Node* __cur = __first; __cur; __cur = __cur->
_M_next)
131 if(_M_equals(_M_get_key(__cur->_M_val), _M_get_key(__obj)))
132 returnpair<iterator, bool>(
iterator(__cur,
this),
false);
134 _Node* __tmp = _M_new_node(__obj);
136_M_buckets[__n] = __tmp;
137++_M_num_elements._M_data;
138 returnpair<iterator, bool>(
iterator(__tmp,
this),
true);
141 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
149 for(
_Node* __cur = __first; __cur; __cur = __cur->
_M_next)
150 if(_M_equals(_M_get_key(__cur->_M_val), _M_get_key(__obj))) {
151 _Node* __tmp = _M_new_node(__obj);
154++_M_num_elements._M_data;
158 _Node* __tmp = _M_new_node(__obj);
160_M_buckets[__n] = __tmp;
161++_M_num_elements._M_data;
165 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
169 resize(_M_num_elements._M_data + 1);
174 _Node* __tmp = _M_new_node(__obj);
176_M_buckets[__n] = __tmp;
177++_M_num_elements._M_data;
181 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
186 _Node* __first = _M_find(_M_get_key(__obj));
190 return_M_insert(__obj);
193 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
194pair< _Ht_iterator<_Val, _Nonconst_traits<_Val>, _Key, _HF, _ExK, _EqK, _All>,
198 typedefpair<iterator, iterator> _Pii;
199 const size_type__n = _M_bkt_num_key(__key);
201 for(
_Node* __first = (
_Node*)_M_buckets[__n]; __first; __first = __first->
_M_next)
202 if(_M_equals(_M_get_key(__first->_M_val), __key)) {
204 if(!_M_equals(_M_get_key(__cur->_M_val), __key))
206 for(
size_type__m = __n + 1; __m < _M_buckets.size(); ++__m)
208 return_Pii(
iterator(__first,
this),
210 return_Pii(
iterator(__first,
this), end());
212 return_Pii(end(), end());
215 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
216pair< _Ht_iterator<_Val, _Const_traits<_Val>, _Key, _HF, _ExK, _EqK, _All>,
221 typedefpair<const_iterator, const_iterator> _Pii;
222 const size_type__n = _M_bkt_num_key(__key);
224 for(
const _Node* __first = (
_Node*)_M_buckets[__n] ;
226__first = __first->
_M_next) {
227 if(_M_equals(_M_get_key(__first->_M_val), __key)) {
231 if(!_M_equals(_M_get_key(__cur->_M_val), __key))
234 for(
size_type__m = __n + 1; __m < _M_buckets.size(); ++__m)
241 return_Pii(end(), end());
244 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
248 const size_type__n = _M_bkt_num_key(__key);
253 _Node* __cur = __first;
256 if(_M_equals(_M_get_key(__next->
_M_val), __key)) {
258_M_delete_node(__next);
261--_M_num_elements._M_data;
268 if(_M_equals(_M_get_key(__first->
_M_val), __key)) {
269_M_buckets[__n] = __first->
_M_next;
270_M_delete_node(__first);
272--_M_num_elements._M_data;
278 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
288_M_buckets[__n] = __cur->
_M_next;
289_M_delete_node(__cur);
290--_M_num_elements._M_data;
297_M_delete_node(__next);
298--_M_num_elements._M_data;
310 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
317_M_bkt_num(__first.
_M_cur->
_M_val) : _M_buckets.size();
319_M_bkt_num(__last.
_M_cur->
_M_val) : _M_buckets.size();
322 else if(__f_bucket == __l_bucket)
323_M_erase_bucket(__f_bucket, __first.
_M_cur, __last.
_M_cur);
325_M_erase_bucket(__f_bucket, __first.
_M_cur, 0);
326 for(
size_type__n = __f_bucket + 1; __n < __l_bucket; ++__n)
327_M_erase_bucket(__n, 0);
328 if(__l_bucket != _M_buckets.size())
329_M_erase_bucket(__l_bucket, __last.
_M_cur);
333 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
337 const size_type__old_n = _M_buckets.size();
338 if(__num_elements_hint > __old_n) {
339 const size_type__n = _M_next_size(__num_elements_hint);
342_M_buckets.get_allocator());
344 for(
size_type__bucket = 0; __bucket < __old_n; ++__bucket) {
345 _Node* __first = (
_Node*)_M_buckets[__bucket];
348_M_buckets[__bucket] = __first->
_M_next;
350__tmp[__new_bucket] = __first;
351__first = (
_Node*)_M_buckets[__bucket];
354_M_buckets.swap(__tmp);
356 # ifdef _STLP_USE_EXCEPTIONS 358 for(
size_type__bucket = 0; __bucket < __tmp.size(); ++__bucket) {
359 while(__tmp[__bucket]) {
361_M_delete_node((
_Node*)__tmp[__bucket]);
362__tmp[__bucket] = __next;
372 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
377 if(__cur == __first)
378_M_erase_bucket(__n, __last);
381 for(__next = __cur->
_M_next;
383__cur = __next, __next = __cur->
_M_next)
385 while(__next != __last) {
387_M_delete_node(__next);
389--_M_num_elements._M_data;
394 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
399 while(__cur && __cur != __last) {
401_M_delete_node(__cur);
403_M_buckets[__n] = __cur;
404--_M_num_elements._M_data;
408 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
411 for(
size_type__i = 0; __i < _M_buckets.size(); ++__i) {
415_M_delete_node(__cur);
420_M_num_elements._M_data = 0;
424 template<
class_Val,
class_Key,
class_HF,
class_ExK,
class_EqK,
class_All>
430_M_buckets.insert(_M_buckets.end(), __ht.
_M_buckets.size(), (
void*) 0);
436_M_buckets[__i] = __xcopy;
440__cur = __next, __next = __cur->
_M_next) {
441__xcopy->
_M_next= _M_new_node(__next->_M_val);
452 # undef const_iterator 453 # undef __size_type__ 454 # undef __reference__ 459 # undef __stl_num_primes__DECLARE_INSTANCE(const size_t, _Stl_prime_type::_M_list[],={ 53ul, 97ul, 193ul, 389ul, 769ul, 1543ul, 3079ul, 6151ul, 12289ul, 24593ul, 49157ul, 98317ul, 196613ul, 393241ul, 786433ul, 1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul, 50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul, 1610612741ul, 3221225473ul, 4294967291ul })
#define __PRIME_LIST_BODY
static const size_t _M_list[28]
__vector__< void *, _M_node_ptr_allocator_type > _BucketVector
void resize(size_type __num_elements_hint)
iterator insert_equal_noresize(const value_type &__obj)
size_type _M_next_size(size_type __n) const
_STLP_alloc_proxy< size_type, _Node, _M_node_allocator_type > _M_num_elements
pair< iterator, bool > insert_unique_noresize(const value_type &__obj)
void _M_erase_bucket(const size_type __n, _Node *__first, _Node *__last)
void _M_copy_from(const _Self &__ht)
const _Node * _M_get_bucket(size_t __n) const
reference _M_insert(const value_type &__obj)
size_type bucket_count() const
pair< iterator, iterator > equal_range(const key_type &__key)
reference find_or_insert(const value_type &__obj)
static bool _STLP_CALL _M_equal(const hashtable< _Val, _Key, _HF, _ExK, _EqK, _All > &, const hashtable< _Val, _Key, _HF, _ExK, _EqK, _All > &)
size_type erase(const key_type &__key)
if(yy_accept[yy_current_state])
void resize(vector< SMethodDef > &container)
#define _STLP_UNWIND(action)
less< _Tp > _stlp_less(_Tp *)
#define __lower_bound(b, e, v, c, d)
#define _STLP_BEGIN_NAMESPACE
#define _STLP_END_NAMESPACE
_Node * _M_skip_to_next()
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4