2011-12-06 26 views
10

Sto avendo difficoltà a capire dove ho sbagliato con il mio codice:C errore ++ STL rimuovere

#include <iostream> 

#include <string> 

using namespace std; 

int main(int argc, char* argv[]) { 
    string str = ""; 
    cin >> str; 
    remove(str.begin(), str.end(), ' '); 
    cout << str; 
    cin.ignore(); 
} 

L'errore dice: " 'rimuovere': la funzione non accetta 3 argomenti (C2660)"

+5

Si stava per finire chiamando la funzione [this] (http://msdn.microsoft.com/en-us/library/2da4hk1d%28v=VS.100%29.aspx). – Jon

+4

+1 per fornire un programma di esempio minimo completo. http://sscce.org –

+2

@Jon: bella presa. Ecco perché preferisco non usare 'using namespace std' poiché nasconde ogni tipo di funzioni. – Johnsyweb

risposta

18

Prova ad aggiungere

#include <algorithm> 

"algoritmo" è un'intestazione STL contiene un sacco di funzioni, tra cui std :: rimuovere, che l'OP sta cercando di chiamare. L'errore che ha ricevuto è dovuto al fatto che esiste un'altra funzione che accetta un singolo argomento, chiamato "remove", che elimina un file.

+0

Grazie! Era così! – tr0yspradling

+6

Fare clic sulla casella di controllo per contrassegnare questa domanda come risposta. – StilesCrisis

+0

Devi aspettare 10 minuti prima che io possa! – tr0yspradling