Boost string_algo return viturn при сбое поиска
-
27-10-2019 - |
Вопрос
Я хочу найти первое пространство на линии, используя Boost :: String_algo's Find Find:
const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
Кажется, я не могу найти ничего в документах, которые говорят, что это возвращает, если не найдет пространство. Нужно ли проверить token_range.end () против line.end () или что -то в этом роде?
Спасибо!
Решение
Я думаю, тебе следует просто проверить token_range.empty()
, как это:
const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
if (!token_range.empty())
{
// Found a a match
}
boost::iterator_range
Также имеет оператор преобразования Bool, так что вы можете даже отбросить вызов функции Pement () и просто написать:
const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
if (token_range)
{
// Found a a match
}
Не связан с StackOverflow