Ответ 1
В общем случае подход istringstream медленный/неэффективен и требует как минимум столько же памяти, сколько и самой строки (что происходит, когда у вас очень большая строка?). С++ String Toolkit Library (StrTk) имеет следующее решение вашей проблемы:
#include <string>
#include <vector>
#include <deque>
#include "strtk.hpp"
int main()
{
std::string sentence1( "Cpp is fun" );
std::vector<std::string> vec;
strtk::parse(sentence1," ",vec);
std::string sentence2( "Cpp,is|fun" );
std::deque<std::string> deq;
strtk::parse(sentence2,"|,",deq);
return 0;
}
Дополнительные примеры можно найти Здесь