aumentare il valore di ritorno in caso di fallimento string_algo find
-
27-10-2019 - |
Domanda
Voglio trovare il primo spazio di una linea utilizzando ritrovamento di boost :: string_algo prima:
const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
Non riesco a trovare nulla nella documentazione che dice ciò che questo ritorni se esso non trova uno spazio, però. Ho bisogno di testare token_range.end () contro line.end () o qualcosa del genere?
Grazie!
Soluzione
Credo che si dovrebbe solo token_range.empty()
di prova, in questo modo:
const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
if (!token_range.empty())
{
// Found a a match
}
boost::iterator_range
ha anche un operatore di conversione bool, così si può anche cadere il vuoto chiamata di funzione (), e basta scrivere:
const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
if (token_range)
{
// Found a a match
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow