Frage

Ich möchte den ersten Platz in einer Zeile mit Boost :: String_algo zuerst finden:

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

Ich kann in den Dokumenten anscheinend nichts finden, das sagt, was dies zurückgibt, wenn es keinen Raum findet. Muss ich token_range.end () gegen line.end () oder so testen?

Vielen Dank!

War es hilfreich?

Lösung

Ich denke, Sie sollten einfach testen token_range.empty(), so was:

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

boost::iterator_range Hat auch einen Bool Conversion -Operator, sodass Sie sogar den Funktionsaufruf leer () fallen lassen und einfach schreiben können:

const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
if (token_range)
{
    // Found a a match
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top