
如圖,為什么初始化的桶數為100,列印桶數結果為103?
uj5u.com熱心網友回復:
void rehash(size_type _Buckets)
{ // rebuild table with at least _Buckets buckets
size_type _Maxsize = _Vec.max_size() / 4;
size_type _Newsize = _Min_buckets;
for (; _Newsize < _Buckets && _Newsize < _Maxsize; )
_Newsize *= 2; // double until big enough
if (_Newsize < _Buckets)
_Xout_of_range("invalid hash bucket count");
while (!(size() / max_load_factor() < _Newsize)
&& _Newsize < _Maxsize)
_Newsize *= 2; // double until load factor okay
_Init(_Newsize);
_Reinsert();
}
這是unordered_set建構式的源代碼。
_Buckets就是你提供的建構式的引數。
uj5u.com熱心網友回復:
那至少列印的數應該可以被2整除呀uj5u.com熱心網友回復:
我不知道你用的什么編譯器?我用vs2015,列印的是128
uj5u.com熱心網友回復:
codeblock, 編譯器是Mingw轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/69187.html
標籤:C++ 語言
上一篇:大家幫忙看一下這報錯是怎么回事
