Удаление символов из строки с помощью стирания и удаления

Я нашел это решение в Stack Overflow и других форумах для удаления символов из строки. Скажем, я хотел удалить пробелы из строки, которую я бы сделал:

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

где currentLine - это имя строки.

Это похоже на работу для людей, но если я использую это, я получаю:

/local/yrq12edu/Desktop/Bens_C++_Utilities/simuPOPtoFASTA/simuPOP2FASTA.cpp|54|error: cannot convert 'std::basic_string<char>::iterator {aka __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >}' to 'const char*' for argument '1' to 'int remove(const char*)'|

Как ошибка компиляции. Я думаю, что это как-то связано с итератором, возвращаемым функцией std::remove, не работающей с методом erase, но, очевидно, она должна работать. Как это исправить?

1 ответ

Решение

Какие заголовки вы включили? Похоже единственное std::remove что компилятор видит тот, в <cstdio> (возможно, включены через <iostream> или один из других заголовков iostream). Если вы включите <algorithm>, вы должны найти правильный.

Другие вопросы по тегам