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