如何将字典添加到向量?
How Can I Add Dictionaries to a Vector?
我正在尝试填充杂货map<string, vector<map<string,string>> >
字典形式的字典,但我遇到了无法从字典中获取键和值字符串的问题。在杂货map<string, vector<map<string,string>> >
中,第一个键表示杂货的类型,即:水果、蔬菜或肉类。该键值是字典的向量。向量的每个字典项都有一个项名称和数量,即:西红柿:2或草莓: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::运算符 (((标准::p空气 &( 常量': 无法将参数 1 从"std::p air"转换为 '标准::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
循环的简化版本。
for ( auto& item: rowDict )
{
rowVect.push_back(item);
}
相关文章:
- 有没有办法向这个向量添加元素?
- 这种方式是否可以接受向向量添加unique_ptr?
- 向向量添加元素
- 无法向向量添加回调
- 如何将向量添加到结构中以创建一个库存系统,在该系统中,我可以仅使用一个结构向系统添加多种不同的葡萄酒
- 在一个类中向向量添加元素不适用于其他类
- 以下向 c++ 向量添加元素的方法有什么区别
- 我可以在不推送向量的情况下向向量添加值吗?
- 向向量C++添加对
- 使用单词键将多个行号的向量添加到我的地图中
- 在C++中向指针数组中的向量添加元素
- 要创建一个一开始没有特定维度的类Vector,请在类中创建一个方法,允许向向量添加维度
- 一次向 C++ 向量添加多个元素
- STL - 向存储在 STL 映射中的向量添加值
- 向向量添加向量
- 如何向结构类型的向量添加点
- 为什么我的课'当我向向量添加实例时,会调用s析构函数
- 向c++向量添加新字段
- 在c++中向向量添加对象vs向向量添加指针
- 当Type为unique_ptr时,为向量添加运算符[]