求助看个问题
struct Maixu
{
int sid; //id
std::list<int> userlist: //队列
int validTime; //预定时间,每个结构不一样,平均5分钟左右,以秒为单位
int leftTime; //剩余时间,以秒为单位
};
其中队列userlist中每一项都在预定的时间validTime后出队,比如当前队列是{1,2,3},validTime是5秒,则5秒后1出列,队列变为{2,3},再过5秒2出队,队列变为{3},相应的实现代码如下:
std::vector<Maixu> m_maixus; /*这个vector长度最多可以达到100000*/
void Timer() //Timer函数每秒运行一次
{
for(std::vector<Maixu>::iterator it = m_maixus.begin();
it !=m_maixus.end();++it)
{
if(it->userlist.empty())
continue;
if(--it->leftTime == 0)
{
//时间到
it->userlist.pop_front();
it->leftTime = it->validTime;
//其他操作
}
}
}
请问上面的实现方式有没有什么问题?如何改进?请提出你的改进方案并重写上面的代码段。