![](/img/trans.png)
[英]'deque iterator not dereferencable` while doing std::deque->front()
[英]“deque iterator not dereferencable” at queue.front() when queue is not empty
我敢肯定這個問題會被問到很多-實際上,我在搜尋問題時發現了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迭代器”錯誤。
使用queue.front()時,還有哪些其他問題可能會觸發此類錯誤?
我什至嘗試將第一行注釋掉-消息像預期的那樣彈出。
謝謝你的時間。
對不起,這是我的一個愚蠢的錯誤。 我在構造函數的某處有一個memset(),當我今天下午更改類型時,該隊列用空堆棧的數據覆蓋了隊列。
經驗教訓,並感謝您的答復!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.