如何在C++中使用多重集插入对

How to insert a pair using multiset in C++

本文关键字:多重集 插入 C++      更新时间:2023-10-16

我想在多集中插入一个整数值和一对。

所以我宣布为:

multiset < int, pair < int, int> > mp;
int m,n,p;

要插入多集,我尝试了这个:

mp.insert(make_pair(m, make_pair(n,p))); // Compile time error

但它给出编译时错误...有人可以建议正确的方法来实施它吗?

类型 multiset<int,pair<int,int>> 正在尝试创建一个多集,其中键int,比较pair<int,int>。这是无稽之谈。你要么想使用

multiset<pair<int,pair<int,int>>>

或者你想使用

multiset<tuple<int,int,int>>

前一种类型 ( pair<int,pair<int,int>> ) 与用于插入到集合中的表达式匹配 ( make_pair(m, make_pair(n,p)) )。如果您使用后者,则需要make_tuple(m,n,p) .