4

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

所以我将其声明为:

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

要插入 multiset 我试过这个:

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

但它给出了编译时错误......有人可以建议正确的方法来实现它。

4

1 回答 1

7

该类型multiset<int,pair<int,int>>正在尝试创建一个多重集,其中 Key 是int并且 Compare 是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).

于 2012-10-04T19:30:03.530 回答