単語の順序を反転(C++)


タイトル:
各単語間がスペースで区切られ、各単語の文字は順序ですが、単語間の順序は逆順序です.
単語のシーケンスを反転させるアルゴリズムを実現します.
次のようになります.
入力:student.a am I
出力:I am a student.
考え方:
文字列を左から右へ遍歴し、各単語を1つずつつなぎ合わせればよい.
コード:
#include 
#include 

using namespace std;

string ReverseSentence(string str) 
{
	string res = "", tmp = "";

	for(unsigned int i = 0; i < str.size(); ++i)
	{
		//     
		if(str[i] == ' ') 
		{
			res = " " + tmp + res;
			tmp = "";
		}
		else
		{
			tmp += str[i];
		}
	}

	//       
	if(tmp.size()) 
		res = tmp + res;

	return res;
}

int main(void)
{
	string str = "student. a am I";
	cout<