C++中1个string字符串,如何根据空格拆成几个字符串

C++中1个string字符串,怎么根据空格拆成几个字符串?
假如 string str1={"qwe  bbb  333"};
怎么得到 string str2={"qwe"},string str3={"bbb"},string str4={"333"}.

------解决方案--------------------
1. boost::algorithm::split 
http://www.boost.org/doc/libs/1_52_0/doc/html/string_algo/usage.html

2. std::stringstream + std::getline

stringstream ss(str);
while(getline(ss, str, ' ')){ ... }
------解决方案--------------------
可以用string的find和substr

或者字符串流处理:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
void main()
{
string str1 = "qwe  bbb  333";
string str2,str3,str4;
istringstream is(str1);
is>>str2>>str3>>str4;
cout<<str2<<","<<str3<<","<<str4<<endl;
}