【发布时间】:2019-10-09 17:30:23
【问题描述】:
我正在尝试填充map<string, vector<map<string,string>> >groceryDict 形式的字典,但我遇到了无法从字典中获取键和值字符串的问题。在map<string, vector<map<string,string>> >groceryDict 中,第一个键代表杂货项目的类型,即:水果、蔬菜或肉类。该键值是字典向量。向量的每个字典项都有一个项名称和数量,即:Tomatoes:2 或 Strawberries:5。
- 我试过下面的代码:
vector<map<string, string>>rowVect;
map<string,string> rowDict={{'Bananas','2'}{'Apples','5'}};
for (map<string, string>::iterator it = rowDict.begin(); it !=
rowDict.end();it++) {
string x = it->first;
string y = it->second;
rowVect.push_back({x,y});
}
- 我也试过下面的代码:
vector<pair<string, string>>rowVect;
map<string,string> rowDict={{'Bananas','2'}{'Apples','5'}};
std::transform(rowDict.begin(), rowDict.end(), back_inserter(rowVect),
[&](std::pair<string,string> &p) {rowVect.push_back( p ); });
我希望代码能够编译,但我收到了以下错误:
1. 错误 C2675 一元“++”:“_Iter”未定义此运算符或
转换为预定义运算符可接受的类型
2. 错误 C2664::operator ()(std::pair &) const':
无法将参数 1 从“std::pair”转换为
'std::pair &'
【问题讨论】:
标签: c++ dictionary iterator transform