Uma maneira comum de dividir uma string pode parecer como: std::vector<std::string> v = split("::a,,1::3.14 ", " :,")
.
Usando o modelo Variadic do C ++ 11, criei uma maneira inteligente de dividir strings. A essência relativa está aqui .
A ideia é passar uma lista de variáveis, de qualquer tipo, como argumento da split
função para armazenar em cada variável específica da lista o valor relativo selecionado na string.
Um exemplo poderia ser:
std::string first;
int second;
float third;
split(" STRING:: 123 --:: 3.14;;", " -:;", first, second, third);
/* Optional : auto v = split(" STRING:: 123 --:: 3.14;;", " -:;", first, second, third); */
assert(first == "STRING");
//assert(v[0] == first);
assert(second == 123);
//assert(v[1] == "123");
assert(third == 3.14f);
//assert(v[2] == "3.14");
Aproveitar!