20 #ifndef UTILS_STRINGS_TOKENIZE_H
21 #define UTILS_STRINGS_TOKENIZE_H
29 inline void Tokenize(
const std::string &
string,
const std::string &delimiters,
30 std::vector<std::string> *tokens) {
31 size_t prev = 0, next = 0;
32 while ((next =
string.find_first_of(delimiters, prev)) != std::string::npos) {
33 if (next - prev != 0) {
34 tokens->push_back(
string.substr(prev, next - prev));
39 if (prev <
string.size()) {
40 tokens->push_back(
string.substr(prev));
45 inline void Tokenize(
const std::string &
string,
46 const std::vector<char> &delimiters,
47 std::vector<std::string> *tokens) {
48 std::string delimiters_string;
49 for (
const auto &element : delimiters)
50 delimiters_string.push_back(element);
52 Tokenize(
string, delimiters_string, tokens);
56 inline void Tokenize(
const std::string &
string,
char delimiter,
57 std::vector<std::string> *tokens) {
58 std::string delimiter_string = { delimiter };
59 Tokenize(
string, delimiter_string, tokens);
void Tokenize(const std::string &string, const std::string &delimiters, std::vector< std::string > *tokens)