В Java есть функция .split
которая разделяет строку вокруг регулярного выражения и возвращает массив строк, так вот есть ли в C++ (стандартной библиотеке) аналогичная функция?
template<class itIn, class itOut, class T, class F>
itIn split(itIn it, itIn end, itOut out, T sep, F func) {
while(it != end) {
auto slice_end (std::find(it, end, sep));
*out++ = func(it, slice_end);
if(slice_end == end) { return end; }
it = std::next(slice_end);
}
}
int main(int argc, char *argv[])
{
std::string str = "приём*приём*foo*bar*baz";
std::list<std::string> l;
split(std::begin(str), std::end(str), std::back_inserter(l), '*', [](auto itA, auto itB) {
return std::string(itA, itB);
});
copy(std::begin(l), std::end(l), std::ostream_iterator<std::string>{std::cout, " "});
std::cout << "\n";
return 0;
}
ну или boost::split
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пытаюсь подключиться к базе данных, созданной через Visual Studio (Средства -> Подключиться к базе данных)
Как можно реализовать вывод ошибки lua например: "Syntax error in scriptlua 4 line"