我有一个这样的字符串:
"\r 颜色=\"红色\" 名称=\"乔恩\" \t\n 深度=\"8.26\" "
我想解析这个字符串并创建一个std::list
这个对象:
class data
{
std::string name;
std::string value;
};
例如:
name = color
value = red
最快的方法是什么?我可以使用升压。
编辑:
这是我尝试过的:
vector<string> tokens;
split(tokens, str, is_any_of(" \t\f\v\n\r"));
if(tokens.size() > 1)
{
list<data> attr;
for_each(tokens.begin(), tokens.end(), [&attr](const string& token)
{
if(token.empty() || !contains(token, "="))
return;
vector<string> tokens;
split(tokens, token, is_any_of("="));
erase_all(tokens[1], "\"");
attr.push_back(data(tokens[0], tokens[1]));
}
);
}
但是如果里面有空格就不行了" "
:like color="red 1"
.