Вы можете использовать регулярное выражение для сопоставления отдельных частей, например:
std::regex re{R"(<\w+,\w+>)"};
, а затем легко построить vector<string>
результатов следующим образом:
std::vector<std::string> pieces;
std::sregex_token_iterator begin(str.begin(), str.end(), re), end;
std::copy(begin, end, std::back_inserter(pieces));
Вот демо .