我想在多集中插入一个整数值和一对。
所以我宣布为:
multiset < int, pair < int, int> > mp;
int m,n,p;
要在multiset中插入,我尝试了这个:
mp.insert(make_pair(m, make_pair(n,p))); // Compile time error
但它给出了编译时错误......有人可以建议正确的方法来实现它。
答案 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)
。