Wenn ich einzelne Wörter iterieren in einem String gesucht (durch Leerzeichen getrennt), dann ist die offensichtliche Lösung wäre:effizienteste Weg, um Worte in einem String zu iterieren
std::istringstream s(myString);
std::string word;
while (s >> word)
do things
jedoch, dass ziemlich ineffizient ist. Der gesamte String wird kopiert, während der String-Stream initialisiert wird, und dann wird jedes extrahierte Wort nacheinander in die Variable word
kopiert (was nahe daran liegt, den gesamten String ein zweites Mal zu kopieren). Gibt es eine Möglichkeit, dies zu verbessern, ohne jedes Zeichen manuell durchlaufen zu müssen?
Es gibt keine "effizienteste Methode" – Slava
Benötigen Sie eine vollständige Zeichenfolge für irgendetwas? Wenn nicht, könnten Sie es von Anfang an als Wörter lesen. – NathanOliver
Was ist los mit "manuell über jedes Zeichen iterieren"? Das macht 'istringstream :: operator >> 'wahrscheinlich sowieso (zusätzlich zum Kopieren des Ergebnisses in das' word' Argument). –