我需要遍历已放入向量中的购物清单,并按数量和商品名称进一步分隔每一行。如何获得一个以数字为第一项和以项目名为第二对的对?
例:
vector<string> shopping_list = {"3 Apples", "5 Mandarin Oranges", "24 Eggs", "152 Chickens"}
我不确定这个数字会有多少,所以我不能使用一个常数索引。
理想情况下,我想要成对的向量。
您可以编写一个函数来拆分数量和项目,如下所示:
#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 );
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句