У меня есть string
как "ABC DEF "
с пробелом в конце. Я хотел бы, чтобы превратить его в vector
строк, как {"ABC" "DEF"}
, так что я использовал stringstream
:Разделить строку на вектор слов
string s = "ABC DEF ";
stringstream ss(s);
string tmpstr;
vector<string> vpos;
while (ss.good())
{
ss >> tmpstr;
vpos.push_back(tmpstr);
}
Однако результат vpos
является {"ABC" "DEF" "DEF"}
. Почему последнее слово будет дублироваться в векторе? И каков правильный код, если требуется использовать stringstream
?
@CaptainObvlious: Не совсем, нет. –
Базовая логика: 'ss.good()' не может сказать будущее! –
@LightnessRacesinOrbit - совершенно верно. Закрытое голосование отменено. –