我需要在需要实现 NRU(最近未免费)算法的地方。 当前的数据结构只是简单的映射,比如
map[string]bool
基本上这是字符串可用性的 HashMap 。但
而不仅仅是 bool
,我想包含一些时间戳,以便
对于特定的 string
是否可用,我也会选择 Not Recently Freed (Oldest) 字符串。想知道如何修改 Go 的
数据结构。
我在想
map[string]bool+timestamp
这样,如果设置了最高位,则显示可用或不可用 时间戳将帮助我根据时间进行搜索。
最佳答案
如果你想在映射的值部分存储两种类型,你可以通过创建一个新的结构类型来实现:
type Value struct {
avail bool
timestamp time.Time
}
然后你可以创建一个 map 如下:
m := map[string] Value{}
并添加到 map 中:
m["some-value"] = Value{avail:true, timestamp: time.Now()}
关于go - Not Recently Used 算法使用 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53327600/