Нужно ли использовать .str () для хранения match.suffix () в regex_search? - PullRequest
0 голосов
/ 28 февраля 2019

Я должен использовать суффикс результата совпадения для regex_search.Строка, которая у меня есть, составляет приблизительно миллион строк, и она занимает в среднем 30 мс для того, чтобы просто присвоить ее временной строке.Если я не использую .str (), даже тогда программа работает нормально и занимает в среднем те же 30 мс.Использование отсчета времени только для сравнения.

regex_search(input, match, re);
tempStr = match.suffix().str();

Пожалуйста, дайте мне знать назначение .str (), если нет существенной разницы во времени (миллисекунды).

1 Ответ

0 голосов
/ 28 февраля 2019

Нужно ли использовать .str () для хранения match.suffix () в regex_search?

Нет.match.suffix() неявно преобразуется в string, и эффект эквивалентен вызову .str().

Я предполагаю, что явный вызов .str() необходим только при наличии вывода типа:

auto match(std::regex re, std::string s) {
    std::smatch m;
    std::regex_match(s, m, re);
    // return m.suffix(); // bad: the return value is dangling
    return m.suffix().str(); // OK: copies the matched part
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...