1
Привет, я пытаюсь импортировать код, сделанный парнем в visual studio с C++ в gcc в linux. Im получает ошибку в этом фрагменте кода в строке rhs.erase.Ошибка преобразования в std :: remove function
void cleanString(std::string &rhs) {
char chars[] = "/-";
for (unsigned int i = 0; i < strlen(chars); ++i){
rhs.erase(std::remove(rhs.begin(), rhs.begin()+3, chars[i]), rhs.begin()+3);
}
}
Здесь ошибка:
../src/ApplicationMethods.cpp: In function ‘void RetrievalUtil::ApplicationMethods::cleanString(std::string&)’:
../src/ApplicationMethods.cpp:27:61: 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*)’
rhs.erase(std::remove(rhs.begin(), rhs.begin()+3, chars[i]), rhs.begin()+3);
Im не эксперт по C++ и любая помощь будет оценена.
Спасибо за быстрый ответ, #include заработал! –
@Brian, даже с 'std :: remove', он все еще получает версию' stdio.h'? Или от ''? Это кажется чрезвычайно странным, особенно если вы включаете в себя как '', так и' '. –
vsoftco
@vsoftco Мой плохой, я должен был сказать «'. '' должен объявлять свои функции в пространстве имен 'std'. –
Brian