S.find() из библиотеки string

Рейтинг: -1Ответов: 1Опубликовано: 20.01.2015

Какой алгоритм использует s.find() из библиотеки string (C++) для поиска подстроки в строке (КМП или что-то другое)?

Ответы

▲ 2Принят

Стандарт не накладывает никаких ограничений на сложность std::string::find, поэтому надо смотреть на конкретные имплементации стандартной библиотеки. В реализации библиотеки для gcc, например, используется наивный алгоритм со сложностью O(длина-строки * длина-образца) (см. basic_string<...>::find, char_traits<char>::compare).