2011-12-06 13 views
10

estoy teniendo problemas para entender que hice mal con mi código:C error STL ++ quitar

#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(); 
} 

El error dice " 'eliminar': la función no toma 3 argumentos (C2660)"

+5

Acababa llamando a [this] (http://msdn.microsoft.com/en-us/library/2da4hk1d%28v=VS.100%29.aspx) en su lugar. – Jon

+4

+1 por proporcionar un programa de ejemplo mínimo completo. http://sscce.org –

+2

@Jon: Buena captura. Es por eso que prefiero no usar 'using namespace std' ya que oculta todo tipo de funciones. – Johnsyweb

Respuesta

18

Trate de añadir

#include <algorithm> 

"algoritmo" es un encabezado STL contiene una gran cantidad de funciones, incluyendo std :: remove, que el PO está intentando llamar. El error que obtuvo fue porque hay otra función que toma un solo argumento, llamado "eliminar", que borra un archivo.

+0

Gracias! ¡Eso fue todo! – tr0yspradling

+6

Haga clic en la casilla de verificación para marcar esta pregunta como respondida. – StilesCrisis

+0

Tengo que esperar 10 minutos antes de que pueda! – tr0yspradling