Удаление символов из строки с помощью стирания и удаления
Я нашел это решение в 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>
, вы должны найти правильный.