我确信这个问题被问了很多 - 事实上,我在谷歌搜索这个问题时找到了 10 多个答案。但他们都指出当队列为空时不要调用queue.front()。
我有以下代码:
std::queue<Message*> MessageQ; //declaring the queue
//...
MessageQ.push(Msg); //filling the Queue
//...
if (!MessageQ.empty())
{
Message* ToReturn = MessageQ.front();
MessageQ.pop();
return ToReturn;
}
return 0;
我在 .front() 行收到“deque iterator not dereferencable”错误。
使用queue.front()时还有哪些其他问题可能会触发此类错误?
我什至尝试评论第一行 - 消息会像它应该的那样弹出。
感谢您的宝贵时间。
最佳答案
抱歉,这是我犯的一个愚蠢的错误。我在构造函数中的某个地方有一个 memset() ,它用空堆栈的数据覆盖了队列,因为我今天下午更改了类型。
吸取教训,感谢您的回答!
关于c++ - 当队列不为空时,在queue.front()处为"deque iterator not dereferencable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23742839/