在STL映射中使用向量作为参数

时间:2019-04-09 05:53:55

标签: c++ vector stl containers stdmap

我一直试图用1个键链接2个值,而我发现的一种方法是使用向量来实现相同的目的。我写了以下代码

#include<iostream>
#include<vector>
#include<map>
#include<stdlib.h>

using namespace std; 

map<int,vector<int> map1;

void insertInMap(int q,int a,int b)
{
    vector<int> v1;
    v1.push_back(a);
    v1.push_back(b);
    map1.insert(q,v1);
}
int main()
{
    return 0;
}

insertinmap函数用于创建向量作为地图的参数。在初始化列表时出现错误

错误-模板2参数无效,模板4参数无效。

1 个答案:

答案 0 :(得分:3)

在地图中,insert()希望插入一个元素作为参数。映射的元素是由键和值组成的一对。因此:

map1.insert(make_pair(q,v1));

在地图中插入元素的一种更方便的方法是将赋值运算符与索引结合使用:

map1[q] = v1; 

注意: 您忘记了地图定义的结尾>,但我想这是错字