#c #deque #std-pair
#c #деке #std-пара
Вопрос:
Каждый раз, когда я вызываю эту функцию, я получаю ошибку сегментации. Я обнаружил, что функция pop_front() работает не так, как я ожидал. Я попытался заменить его функцией стирания, но это не решило проблему. Я хотел бы спросить, почему это не работает и как я должен это решить.
void front(deque <pair<int64_t, int64_t>> p, int64_t o, int64_t t, int64_t per)
{
int64_t i=0;
while(i<per) {
if(p.front().second > per) {
i = per;
p.front().second =- per;
}
else {
i = p.front().second;
p.pop_front();
}
}
p.push_front(make_pair(t, o per));
}
Комментарии:
1. Возможно, вы пытаетесь получить доступ к пустому deque. Вы можете проверить это
2. Кстати, вы должны передавать
p
по ссылке, в противном случае вы получите локальную копию deque, и ваша функция ничего не изменит в исходном deque3.
while(i<per amp;amp; !p.empty())
?