Я знаю, что, возможно, это глупый вопрос, но я пока не нашел ответа.Предположим, у меня есть следующая строка:
std::string str("1,2,3,4,5,6,7,8,9,10");
Я бы хотел разделить ее, используя запятую в качестве разделителя, но только при первых N вхождениях.Например, для N = 2 я должен получить в результате:
{ "1", "2", "3,4,5,6,7,8,9,10" }.
Можно ли сделать это с boost::split
?Я всегда использовал его в следующей форме:
std::vector<std::string> values;
boost::split(values, str, boost::is_any_of(","), boost::token_compress_on);
, которая разбивает строку на при каждом появлении разделителя .
Если это невозможно, можнокто-нибудь подскажет мне эффективный способ сделать это?Я хотел бы избежать работы с регулярными выражениями, то есть я хотел бы написать такую функцию, как:
std::vector<std::string> tokenize(const std::string& to_split, const std::string& delimiter, int occurrences)
Заранее спасибо за помощь.