C ++-从std :: string解析数字

用户名

我需要遍历已放入向量中的购物清单,并按数量和商品名称进一步分隔每一行。如何获得一个以数字为第一项和以项目名为第二对的对?

例:

vector<string> shopping_list = {"3 Apples", "5 Mandarin Oranges", "24 Eggs", "152 Chickens"}

我不确定这个数字会有多少,所以我不能使用一个常数索引。

理想情况下,我想要成对的向量。

P0W

您可以编写一个函数来拆分数量和项目,如下所示:

#include <sstream>

auto split( const std::string &p ) {
    int num;
    std::string item;

    std::istringstream  ss ( p);
    ss >>num ; // assuming format is integer followed by space then item
    getline(ss, item); // remaining string
    return make_pair(num,item) ;
}

然后用于std::transform获取向量对:

std::transform( shopping_list.cbegin(),
                   shopping_list.cend(),
                   std::back_inserter(items), 
                   split );

See Here

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章