Использование вектора в качестве аргумента в карте STL - PullRequest
0 голосов
/ 09 апреля 2019

Я пытался связать 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 Ответ

3 голосов
/ 09 апреля 2019

На карте insert() ожидает в качестве аргумента один элемент для вставки.Элементом карты является пара, состоящая из ключа и значения.Итак:

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

Более удобный способ вставки элементов в карту - это использование оператора присваивания в сочетании с индексацией:

map1[q] = v1; 

Примечание: вы забыли заключительный > в определении вашей карты, но я думаю, что это опечатка

...