如何在C ++中使用multiset插入一对

时间:2012-10-04 19:25:32

标签: c++ std-pair multiset

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

所以我宣布为:

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

要在multiset中插入,我尝试了这个:

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

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

1 个答案:

答案 0 :(得分:6)

类型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)