Как получить доступ к карте множества парных элементов? - PullRequest
1 голос
/ 20 марта 2019
#include <iostream>
#include <map>
#include <set>
#include <utility>
int main()
{
    std::map<int,std::set<std::pair<int,int>>>map1;

    for(int i = 0; i != 3; ++i) 
        map1[i].insert({i+1,i+2});

    for(auto i : map1){

        std::cout<<i.first<<" ";

        pair<int,int> j = i.second;

        j.first<<" "<<j.second<<"\n";

    }
    return 0;
}          

ошибка: преобразование из std :: set > в нескалярный тип std :: pair запрошенная пара j = i.second;

1 Ответ

3 голосов
/ 20 марта 2019

i.second является std::set, а не внутренним std::pair.

Вы должны сделать что-то вроде этого:

for(auto i : map1)
{
    std::cout<< i.first << " ";
    std::set<std::pair<int,int>> j = i.second;
    for (const auto& k : j)
    {
        std::cout << k.first<<" "<<k.second<<"\n";
    }
}

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...