Как вставить элемент в вектор пары множеств?вектор> - PullRequest
0 голосов
/ 12 июня 2018
    vector<pair<int,set<string>>>m1;

Я пытаюсь вставить элемент, где каждый int будет содержать несколько строк, используя set.Как вставить элемент в это?

Я пробовал вот так.

    vector<pair<int,set<string>>>m1;
    int p,n,i;
    cin>>p>>n;
    string s[n];
    for(i=0;i<n;i++){
    cin>>s[i];
    m1.push_back(make_pair(p,insert(s[i])));
    }

Но это показывает ошибку.Помощь высоко ценится.Спасибо !!

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Измените

m1.push_back(make_pair(p,insert(s[i])));

на

m1.push_back(make_pair(p, set<string>{s[i]}));

* * * * * * * * * * * * * * * * * * * * * * * * std::set должен существовать до insert * любого элемента в нем.

0 голосов
/ 12 июня 2018

make_pair необходимо взять пару ключ / значение, поэтому set уже должно существовать.

set<string> s;

for(i=0; i<n; i++){
    {
    string str;
    cin >> str;
    s.insert(str)
    }

m1.push_back(make_pair(p, s));
...