std::find(first, last, value)
возвращает итератор для первого элемента, который соответствует value
в диапазоне [first, last). Если совпадений нет, возвращается last
.
В частности, std :: find не возвращает логическое значение. Чтобы получить искомое логическое значение, вам нужно сравнить возвращаемое значение (без преобразования его в логическое значение первым!) Для std :: find с last
(т. Е. Если они равны, совпадение не найдено).