采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
WheelEntry tmp; bq.front().swap(tmp); bq.pop_front(); bq.push_back(WheelEntry());
这里开始的写法是直接bq.front().clear(),后面出现错误才改为的temp,这里直接clear为什么不行呢,unordered_set在clear的时候不是会调用对象的析构函数吗。 还是说,unordered_set是不会主动调用shared_ptr的析构?
bq.front().clear()
unordered_set在clear的时候不是会调用对象的析构函数,这是测试的时候发现的
感谢老师,刚才又试了一下,发现RunEvery 1秒的时候就会出现只被调用一次,而如果是大于1秒的,例如3秒5秒这种就可以正常运行,所以可能是因为clear之后,整个wheel[0]都会被清空,新加入的entry事件如果delay为1,那么恰好就是在wheel[0]的位置,所以就也跟着被清空了。
直接pop_front()就好了呀,前两行都不要了。
回复 BigBeautty:我觉得逻辑上可以把-1都去掉
登录后可查看更多问答,登录/注册
带你构建千万级直播系统的核心技能 实现高薪跃迁
285 4
1.1k 3
227 3
246 2
250 2
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号