Предмет: Информатика, автор: olwi

Народ, тут случайно никто в с++ не шарит? Если есть такие то помогите пожалуйста))
Разработать функцию удаления из очереди всех положительных элементов.


Аноним: создай массив, содержащий элементы очереди, очисть её и заполни заново из этого массива
Аноним: Шарят в карманах воришки. А в программировании разбираются. Или НЕ разбираются, вроде Вас, при этом не к месту бросаясь дурацкими уличными словечками.
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;

}

Похожие вопросы
Предмет: Алгебра, автор: andriukv