读书人

VS2010 STL hash地图

发布时间: 2013-03-21 10:08:17 作者: rapoo

VS2010 STL hashmap

版本是 V5.20:0009

hashmap继承于_Hash,基本所有实现都是对于_Hash得封装。这里主要是阅读一下_Hash的代码流程。


首先是hash_map声明

// 进行表扩充void _Check_size(){// grow table as neededif (max_load_factor() < load_factor()) #if _HAS_INCREMENTAL_HASH_Grow();// too dense, need to grow hash table #else /* _HAS_INCREMENTAL_HASH */{// rehash to bigger tablesize_type _Maxsize = _Vec.max_size() / 2;size_type _Newsize = bucket_count();for (int _Idx = 0; _Idx < 3 && _Newsize < _Maxsize; ++_Idx)_Newsize *= 2;// multiply safely by 8_Init(_Newsize);_Reinsert(end());} #endif /* _HAS_INCREMENTAL_HASH */}


读书人网 >VSTS

热点推荐