我粗略地看了一下这个代码,目前来看,感觉有以下问题:
<1> 应使用 steady_clock 而不是 system_clock;
<2> 在 get(const Key& key) 方法里面,它先释放read-lock再申请write-lock, 所以,有可能使的原先的iterator无效,即: _lru_list.erase(item->second.second); 有可能是一个无效iterator.
总结:
gpt写代码,可以帮助学生写作业,对付老师 对付考试 挺好!但是,用到实际产品上,还是需要需要人类好好把关,好好测试。
@z16166
【 在 z16166 的大作中提到: 】
: 贴个之前用coze写的代码的例子(gpt4),各位可以试试找找它的bug在哪里(人工搞不定的话,可以喂给AI找bug试试)
: 我下的提示指令是两句话:
: 1、可否实现一个C++模板类,该类实现LRU缓存的功能,能指定最大缓存的消息个数,以及需要淘汰的时间间隔TTL。
: ...................
--
FROM 1.202.242.*