Почему бы вам не заняться этим с Qt.
Вообще говоря, QLatin1String
используется для обозначения того, что мы использовали для вызова текста ASCII (без Unicode). QString
- это всесильная строка по умолчанию в Qt, и вы обычно должны использовать ее, или вы можете преобразовать ее в std::string
и использовать ее. Любой из них может прийти за счет копии.
Если вы хотите избежать копирования, QLatin1String
имеет функции begin()
и end()
, поэтому вы также можете использовать стандартные алгоритмы, например, новые C ++ 17 std::search()
:
auto s = QLatin1String("The lazy dog");
auto needle = QLatin1String("azy");
auto it = std::search( std::begin(s), std::end(s),
std::boyer_moore_horspool_searcher( std::begin(needle), std::end(needle) ) );
Вот рабочий пример с использованием std::string
с, который также будет работать в течение QLatin1String
с на Coliru .
Подробнее о Блог Бартека по кодированию .