Ciao a tutti, ho questo esercizio che mi chiede di eliminare i numeri negativi da una coda, senza cambiare però gli altri elementi della coda.
Questo è il codice che ho provato:
#include <iostream>
#include <deque>
using namespace std;
void RimuoviNegativi (deque <int>& C)
{
deque <int> Pos; //Coda dove immagazzinare i numeri positivi trovati
for (int i=0; i<C.size(); i++)
{
if(i>=0)
Pos.push_back(i);
}
//STAMPO
cout << "CODA SENZA NEGATIVI: ";
for (deque<int> :: iterator it=Pos.begin(); it!=Pos.end(); ++it)
cout << " " << *it;
}
int main()
{
deque <int> Coda;
int n;
cout << "Inserisci elementi nella coda (premi 0 per terminare): ";
do {
cin >> n;
Coda.push_back(n);
} while (n);
RimuoviNegativi(Coda);
return 0;
}
Il problema è che se ad esempio inserisco come elementi nella coda; -2 3 1 -3 0, in stampa mi ritrovo: 0 1 2 3 4, e non 3 1 0.
Secondo voi dov'è che sbaglio? Grazie mille in anticipo!