在c+中实现映射向量+; 我想用C++中的地图矢量。 我有一个映射值列表,我想将其存储为向量中的映射。 我的要求是这样的: 1.对于N列,我有一个值映射。 2.我想维护N中每个I的地图
我正在尝试在Vector>中维护此功能。 请让我知道如何使它工作 我使用以下代码添加映射在c+中实现映射向量+; 我想用C++中的地图矢量。 我有一个映射值列表,我想将其存储为向量中的映射。 我的要求是这样的: 1.对于N列,我有一个值映射。 2.我想维护N中每个I的地图,c++,C++,我正在尝试在Vector>中维护此功能。 请让我知道如何使它工作 我使用以下代码添加映射 void fun() { vector< map < string, int> > myVect; myVect.push_back(new map< string, int> ); myVect.push_back(new map< string, int> ); map< string, int> entry1 = myVect[0];
void fun()
{
vector< map < string, int> > myVect;
myVect.push_back(new map< string, int> );
myVect.push_back(new map< string, int> );
map< string, int> entry1 = myVect[0];
entry1["ABC"] = 1;
entry1["DEF"] = 2;
map< string, int> entry2 = myVect[1];
entry1["ABC"] = 5;
entry1["RKD"] = 9;
}
void fun()
{
向量
为什么不起作用?在您的示例中,您使用的是指针(通过
new
),而不是常量引用或值。“映射向量”声明很好,但插入导致编译器错误
要将贴图推入向量,请使用以下表单:
std::map<std::string,int> m;
// populate m if needed
x.push_back(m);
std::map m;
//如果需要,填充m
x、 推回(m);
或者干脆
x.push_back(std::map<std::string,int>());
x.push_back(std::map());
如果要推送空地图
请注意,这里不需要新的。贾斯汀回答了大部分问题,但另一个问题是:
map< string, int> entry1 = myVect[0];
mapentry1=myVect[0];
这将从矢量中复制地图。您可能需要一个参考:
map< string, int>& entry1 = myVect[0];
map&entry1=myVect[0];
到目前为止,您尝试了什么?你似乎对你想要实现的目标有着非常明确的想法,那么你的问题到底在哪里呢?例如:vectorOk,所以你似乎让它工作起来了。你有什么问题?@Rahul我已经根据你的评论更新了我的答案。你的结构声明很好,但你的插入有一个错误。你在写问题的时候看了吗?你注意到它的一些相当重要的部分丢失了吗?您是否注意到,当提出问题时,侧边栏描述了如何格式化代码?请,当你问问题时,尽量让他们可读。如果你懒得读你写的东西,你希望其他人也读吗?代码可以用反记号(`
)包围,也可以缩进4个空格来标记。或者只需选择代码并单击{}
按钮。