Parsing key/value pairs from a string in C++

前端 未结 2 395
情书的邮戳
情书的邮戳 2021-01-20 23:31

I\'m working in C++11, no Boost. I have a function that takes as input a std::string that contains a series of key-value pairs, delimited with semicolons, and returns an object

2条回答
  •  醉酒成梦
    2021-01-21 00:00

    Do you care about performance or readability? If readability is good enough, then pick your favorite version of split from this question and away we go:

    std::map tag_map;
    
    for (const std::string& tag : split(input, ';')) {
        auto key_val = split(input, '=');
        tag_map.insert(std::make_pair(key_val[0], key_val[1]));
    }
    
    
    S s{std::stoi(tag_map["top"]),
        std::stoi(tag_map["bottom"]),
        tag_map["name"]};
    

提交回复
热议问题