У меня есть такое требование. Для функции я получаю ввод в виде потока чисел. Я имею в виду, что функция продолжает вызываться с одним номером в каждом вызове. Я использую очередь для хранения потока чисел. Мне нужно обрабатывать собранный набор чисел только тогда, когда выполняется какое-то условие. Если условие не выполняется, мне нужно выбросить все элементы в очереди, а затем начать хранить новые номера в этом. Для очистки очереди я не смог найти метод clear (). Так что я зацикливаюсь, как показано ниже.
while(!q.empty())
q.pop();
Я получил эффективный алгоритм очистки очереди на
Как эффективно очистить очередь std ::? 1007 *
Мой вопрос: почему очередь не поддерживает функцию clear ()?
Когда deque и vector поддерживают метод clear (), каковы технические трудности в поддержке его для очереди?
Или мой приведенный выше вариант использования очень редок и, следовательно, не поддерживается?
Спасибо.