Предмет: Информатика,
автор: olwi
Народ, тут случайно никто в с++ не шарит? Если есть такие то помогите пожалуйста))
Разработать функцию удаления из очереди всех положительных элементов.
Аноним:
создай массив, содержащий элементы очереди, очисть её и заполни заново из этого массива
Ответы
Автор ответа:
1
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <queue>
template <typename T>
void remove(std::queue<T> *q)
{
int *a = new int[q->size()];
int t = 0;
for (int i = 0; i < q->size(); i++)
{
if (q->front() <= 0)
{
a[t] = q->front();
t++;
}
q->pop();
}
for (int i = 0; i < t; i++)
q->push(a[i]);
}
int main()
{
srand(time(NULL));
std::queue<int> q;
int l;
std::cin >> l;
for (int i = 0; i < l; i++)
{
//создание очереди
q.push(rand()%21-10);
std::cout << q.back() << ' ';
}
remove(&q);
std::cout << std::endl;
for (int i = 0; i < q.size(); i++)
{
//вывод очереди на экран
std::cout << q.front() << ' ';
q.pop();
}
return 0;
}
Похожие вопросы
Предмет: Математика,
автор: stepaskinamaria1
Предмет: Математика,
автор: virine89
Предмет: Литература,
автор: N1zel1x
Предмет: Математика,
автор: нися3
Предмет: Алгебра,
автор: andriukv