采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
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]的位置,所以就也跟着被清空了。
登录后可查看更多问答,登录/注册
带你构建千万级直播系统的核心技能 实现高薪跃迁
540 3
75 3
45 2
94 2
52 2