Supprimer les espaces d'une chaîne en C ++

Je suis présentement en train d'apprendre le C++. Je suis en train de coder une méthode pour supprimer les espaces en blanc, forme une chaîne de caractères et le retour de la chaîne sans les espaces
C'est mon code:

string removeSpaces(string input)
{
  int length = input.length();
  for (int i = 0; i < length; i++) {
     if(input[i] == ' ')
        input.erase(i, 1);
  }
  return input
}

Mais cela a un bug comme il ne supprimera pas le double ou le triple des espaces blancs.
J'ai trouvé ceci sur le net

s.erase(remove(s.begin(),s.end(),' '),s.end());

mais apparemment c'est au retour d'une iterator (si je comprends bien)
Est-il possible de convertir le iterator de retour à ma chaîne input?
Le plus important est ce la bonne solution?

source d'informationauteur mikey