C++ 如何将字典添加到向量?
我试图填充一个C++ 如何将字典添加到向量?,c++,dictionary,iterator,transform,C++,Dictionary,Iterator,Transform,我试图填充一个mapgroceryDict形式的字典,但是我遇到了一个问题,无法从字典中获取键和值字符串。在mapgroceryDict中,第一个键表示杂货项目的类型,即:水果、蔬菜或肉类。该键值是字典的向量。向量的每个字典项都有一个项名称和数量,即:西红柿:2或草莓:5 我尝试了以下代码: vectorowvect; map rowDict={{'Bananas','2'}{'Apples','5'}; 对于(map::iterator it=rowDict.begin();it!= rowD
map
groceryDict形式的字典,但是我遇到了一个问题,无法从字典中获取键和值字符串。在map
groceryDict中,第一个键表示杂货项目的类型,即:水果、蔬菜或肉类。该键值是字典的向量。向量的每个字典项都有一个项名称和数量,即:西红柿:2或草莓:5
vectorowvect;
map rowDict={{'Bananas','2'}{'Apples','5'};
对于(map::iterator it=rowDict.begin();it!=
rowDict.end();it++){
字符串x=it->first;
字符串y=it->second;
rowVect.push_back({x,y});
}
vectorowvect;
map rowDict={{'Bananas','2'}{'Apples','5'};
std::transform(rowDict.begin()、rowDict.end()、back_插入器(rowVect),
[&](std::pair&p){rowVect.push_back(p);});
我希望代码能够编译,但却收到了以下错误:1.错误C2675一元“++”:“\u Iter”未定义此运算符或 转换为预定义运算符可接受的类型
2.错误C2664::运算符()(std::pair&)const': 无法将参数1从“std::pair”转换为
'std::pair&'我认为您使用的数据类型不正确。使用
std::map<std::string, std::vector<std::pair<std::string, int>>> groceryDict;
我认为它是在向量中使用pair而不是map。谢谢你的帮助!
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 ); });
std::map<std::string, std::vector<std::pair<std::string, int>>> groceryDict;
std::map<std::string, std::map<std::string, int>> groceryDict;
std::vector<std::pair<std::string, int>> rowVect;
std::map<std::string, int> rowDict = {{"Bananas", 2}, {"Apples", 5}};
for ( auto& item: rowDict )
{
std::string x = item.first;
int y = item.second;
rowVect.push_back({x, y});
}
for ( auto& item: rowDict )
{
rowVect.push_back(item);
}