Question

Je veux trouver le premier espace sur une ligne en utilisant la trouvaille de boost :: string_algo premier:

const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");

Je ne peux pas sembler trouver quoi que ce soit dans les documents qui dit ce que ce rendement si elle ne trouve pas un espace, cependant. Ai-je besoin de token_range.end test () contre line.end () ou quelque chose?

Merci!

Était-ce utile?

La solution

Je pense que vous devriez juste token_range.empty() test, comme ceci:

const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
if (!token_range.empty())
{
    // Found a a match
}

boost::iterator_range a également un opérateur de conversion bool, de sorte que vous pouvez même déposer l'appel de fonction vide (), et il suffit d'écrire:

const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
if (token_range)
{
    // Found a a match
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top