C ++ STL中hash_map结构的内存开销

时间:2014-09-20 06:15:38

标签: c++ hash stl unordered-map

为了使用hash_map,我假设将分配一个连续的内存块,但默认情况下该块的大小是多少?

2 个答案:

答案 0 :(得分:1)

以下内容适用于unordered_map - C ++ 11及更高版本中哈希映射的名称...

虽然初始大小是特定于实现的,但默认.max_load_factor()由标准规定为1.0,因此一般情况下,当.size()变大时,桶的数量将自动增加。给你一些感觉....

您也可以拨打.bucket_count()来获取即时计数。

答案 1 :(得分:0)

每个块的大小取决于实现。

e.g。你的哈希映射声明是:hash_map homier;

然后,根据OS体系结构,每个散列块大小将是=(字符串的桶大小)+(整数的桶大小)。