'Replace' from & lt;algorithm> не работает корректно
По какой-то причине
replace
шаблон из <algorithm>
не хочет работать на меня. См. пример кода ниже:#include <iostream> #include <string> #include <algorithm> using namespace std; int main() { string s = "Hello, world!"; replace(s.begin(), s.end(), "l", "i"); cout << s << endl; return 0; }
Синтаксических ошибок в коде нет, но компилятор все равно выдает мне следующие ошибки:
In file included from /usr/include/c++/4.9/algorithm:62:0, from prog.cpp:3: /usr/include/c++/4.9/bits/stl_algo.h: In instantiation of 'void std::replace(_FIter, _FIter, const _Tp&, const _Tp&) [with _FIter = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; _Tp = char [2]]': prog.cpp:8:38: required from here /usr/include/c++/4.9/bits/stl_algo.h:4234:15: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] if (*__first == __old_value) ^ /usr/include/c++/4.9/bits/stl_algo.h:4235:13: error: invalid conversion from 'const char*' to 'char' [-fpermissive] *__first = __new_value; ^
Спасибо всем!
Что я уже пробовал:
Я пробовал несколько версий этого, но, похоже, ничего не работает. Google просто дает мне шаблон, который я уже знаю.