ostringstream和istringstream的有关问题

ostringstream和istringstream的问题
    这两个东西,用法我基本了解了,但是存在的意义是什么呢?都是读取一个string对象,直接使用string对象就行了啊,为什么还要多此一举来个ostringstream和istringstream中转站呢?

------解决方案--------------------
iostringstream是流,string是字符串,两者不同的东西,iostringstream可以像其它流一样使用<<和>>格式化输出输入,这才是iostringstream的用处,string行吗?iostringstream相当于C中的sscanf和sprintf,你说sscanf和sprintf能去掉吗?
------解决方案--------------------
举个简单的例子,怎样把一个字符串中的每个单词保留到一个vector中
比如把这句话放入一个vector:Hear from your industry peers and share your experiences at Oracle Industry Connect.
用sstream就会很方便:
#include <iostream>
#include <sstream>
#include <vector>

using namespace std;

int main()
{
string str = "Hear from your industry peers and share your experiences at Oracle Industry Connect";
vector<string> words;
istringstream iss(str);
string word;
while (iss >> word)
{
words.push_back(word);
}
cout << "words in vector :" << endl;
for (string word : words)
{
cout << word << endl;
}
return 0;
}