为了账号安全,请及时绑定邮箱和手机立即绑定

初始化map时如何设置容量可以防止rehash

初始化map时如何设置容量可以防止rehash

Go
有只小跳蛙 2023-08-21 14:47:07
s := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}capacity := len(s)m := make(map[int]bool, capacity)for _, n := range s {    m[n] = true}地图会在 for 循环中重新散列吗?或者容量应该乘以一个因子以防止重新散列,例如:capacity := len(s) * 1.3
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

你不需要一个因素。规格:制作切片、地图和元素:

make使用地图类型和大小提示进行调用n将创建一个具有初始空间来容纳n地图元素的地图。精确的行为取决于实现。

同样来自内置文档make()

Map:为空映射分配足够的空间来容纳指定数量的元素。该大小可以省略,在这种情况下会分配较小的起始大小。



查看完整回答
反对 回复 2023-08-21
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

s此代码是最优的,只要 的值小于即可不需要更改capacity



查看完整回答
反对 回复 2023-08-21
  • 2 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信