Существует std::find_first_of
, но нет std::find_last_of
. Я хочу сделать такой шаблон самостоятельно. Я обращался к этому коду Есть ли такая функция, как find_last_of в std, но не в строке?
Но эта функция скомпилирована не удалось. Ошибка кажется странной, невозможно конвертировать из _FwdIt1
в _FwdIt1
. Они одного типа. Мой компилятор Visual Studio 2017.
template<class _FwdIt1, class _FwdIt2>
inline _FwdIt1 find_last_of(const _FwdIt1 _First1, const _FwdIt1 _Last1,
const _FwdIt2 _First2, const _FwdIt2 _Last2)
{
return find_first_of(reverse_iterator(_Last1), reverse_iterator(_First1), _First2, _Last2); //error C2440: 'return': cannot convert from '_FwdIt1' to '_FwdIt1'
}
void test()
{
const char* s = "0123456789";
char* sb = "54";
cout<<find_last_of(s, s + strlen(s), sb, sb+strlen(sb));
}