Boost String_Algo Return Value beim Findungsfehler
-
27-10-2019 - |
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!
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