При выполнении кода в режиме отладки я получаю сообщение об ошибке «Итератор deque не может быть разыменован». Код ниже -
#include "stdafx.h"
#include <string>
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> myqueue;
for (int i = 0; i < 1000; i++)
{
myqueue.push(i);
myqueue.front();
cout << "myqueue.front() is = " << myqueue.front() << endl;
myqueue.pop();
}
cout << "myqueue.front() is now = " << myqueue.front() << endl; /// Getting error here
getchar();
return 0;
}
, когда я ставлю проверку размера очереди перед доступом к myqueue.front (), тогда он не получает cra sh, как код, измененный ниже -
if (myqueue.size() > 0)
cout << "myqueue.front() is now = " << myqueue.front() << endl;
Код отлично работает в режиме Release без проверки (myqueue.size ()> 0), однако он получает cra sh во время выполнения только в режиме отладки.
Может Кто-нибудь, помогите мне сообщить, почему он получает cra sh только в режиме отладки. и как избавиться от ошибки в режиме отладки.