文字列を単語にカットするために見つけたこのコードがあります。while部分がどのように機能するのか理解できません。空白のない単語をbuf変数に抽出することをどのように知っていますか?抽出演算子(>>)は、ビットをバッファーに進めるためと、ループに対してtrueを返すための両方に使用されているようです。空白で単語を切り取る方法がわかりません。
string buf; // Have a buffer string
stringstream ss(str); // Insert the string into a stream
vector<string> tokens; // Create vector to hold our words
while (ss >> buf)
tokens.push_back(buf);