这道题想了一天,自己做的只通过90%,不知道错在哪里。
答案用了双向链表
get()函数:先用 iter = mp[ key ], 在map中查找,查找到之后,更新list(也就是在最前面在push一次,然后删除list中旧的值,同时更新mp)
set()函数,同样用iter = mp.find(key),查找map中的值,若能够找到就删除list中旧的值。然后在slist中插入{key,val},更新map中的值
之后判断slist是否大于最大容量,若大于的话就删除slist最后一个元素,同时删除map中的值。



网友评论