Обратите внимание, что "_"
- это строковый литерал , а '_'
- это символьный литерал .
Если вы разыменуете итератор в строку, вы получите символ . Конечно, символы можно сравнивать только с символами литералами , но не с строками литералами .
Однако, как уже заметили другие, вы не должны реализовывать такой алгоритм самостоятельно. Это было сделано миллион раз, два из которых (std::string::find()
и std::find()
) оказались в стандартной библиотеке C ++. Используйте один из них.