返回信息流把removeNode函数改成值传递可以ac,把removeNode函数体内两行交换顺序可以ac,麻烦xdm帮忙解惑!
这是一条镜像帖。来源:北邮人论坛 / cpp / #101584同步于 2021/12/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
c++智能指针进行引用传递时出现问题
xiaosonggege
2021/12/13镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
我在removenode函数第一条语句前后加了打印引用次数,第一条语句执行之前node引用次数是3,第一条语句之后node直接指向他的前驱了…
【 在 RinChanNOW (RinChanNOW!) 的大作中提到: 】
: 把reference count打印出来看看?
建议裸指针 出错原因调了给你半天发现是你的node也用的shareptr 所以你的tail指向的其实不是你想像中lru的那个node,或者说map的node,而是另一个node
【 在 Jarvistj 的大作中提到: 】
: 建议裸指针 出错原因调了给你半天发现是你的node也用的shareptr 所以你的tail指向的其实不是你想像中lru的那个node,或者说map的node,而是另一个node
明显就不是一个简单的双向链表,通过tail->prev访问的结点就不是map中存的
感谢xdm的分析[ema29]我学习一下
【 在 Jarvistj (lortor111) 的大作中提到: 】
: [upload=1][/upload]
: 明显就不是一个简单的双向链表,通过tail->prev访问的结点就不是map中存的