如何在 std::map 中从 std::vector of std::p air 中获取输入?

How to take input from std::vector of std::pair in a std::map?

本文关键字:std air 获取 输入 vector map 中从 of      更新时间:2023-10-16
int n,a,b,c;
cin >> n;
map<int,vector<pair<int,int>>> mv;
for(int i=0;i<n;++i)
{
cin>>a>>b>>c;
mv[a].insert(make_pair(b,c));
}

我正在尝试从std::map中的std::pairstd::vector中获取输入。可能吗?

而且,如何遍历地图?

mv[a].insert(...)不是正确的函数调用。您需要使用mv[a].push_back(...).请记住,mv[a]返回对映射中与键a对应的值的引用。

如果你把这条线一分为二,它会更有意义。

int n,a,b,c;
cin >> n;
map<int,vector<pair<int,int>>> mv;
for(int i=0;i<n;++i)
{
cin>>a>>b>>c;
vector<pair<int,int>>& v = mv[a];
v.push_back(make_pair(b,c));
}