В следующем коде позвольте мне принять using namespace boost
для краткости.
Что касается разделения на символ, если разрешено только algorithm/string
,
is_from_range
может служить цели:
split(vec,str, is_from_range(':',':'));
В качестве альтернативы, если разрешено lambda
:
split(vec,str, lambda::_1 == ':');
или если разрешена подготовка выделенного предиката:
struct match_char {
char c;
match_char(char c) : c(c) {}
bool operator()(char x) const { return x == c; }
};
split(vec,str, match_char(':'));
Что касается сопоставления со строкой, как упоминал David Rodri'guez ,
похоже, что не так с split
.
Если разрешен iter_split
, возможно, следующий код будет соответствовать цели:
iter_split(vec,str, first_finder("::"));