dlaczego remove nie usuwa spacji ze stringa?

0

Witam,
chcialbym wyciac spacje ze stringa, mam taki kod:

#include <iostream>
#include <string>
#include <algorithm>

int main(void)
{
    std::string astring(" Test Wycinania Spacji ");
    std::remove(astring.begin(), astring.end(), ' ');
    std::cout << astring << std::endl;
    return 0;
}

Zamiast wyniku "TestWycinaniaSpacji" konsola wyswietla mi "TestWycinaniaSpacjicji". Ktos ma pomysl dlaczego tak sie dzieje?

0

Remove nic nie usuwa, tylko przesuwa elementy. Erase-remove jest potrzebne:

astring.erase(std::remove(astring.begin(), astring.end(), ' '), astring.end());

//quetz: innymi slowy, naucz sie 'gosc'u czytac dokumentacje, a nie tylko nazwy metod; jest w niej napisane dokladnie jak dziala remove, a i czasem nawet napisza czemu wlasnie tak 'dziwacznie' dziala.

1 użytkowników online, w tym zalogowanych: 0, gości: 1