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

Ris*_*abh 2 c++ multiset std-pair

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

所以我宣布它为:

multiset < int, pair < int, int> > mp;
int m,n,p;
Run Code Online (Sandbox Code Playgroud)

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

mp.insert(make_pair(m, make_pair(n,p))); // Compile time error
Run Code Online (Sandbox Code Playgroud)

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

Lil*_*ard 7

该类型multiset<int,pair<int,int>>正在尝试创建一个多重集,其中Key int和Compare是pair<int,int>.这是荒谬的.你要么想用

multiset<pair<int,pair<int,int>>>
Run Code Online (Sandbox Code Playgroud)

或者你想使用

multiset<tuple<int,int,int>>
Run Code Online (Sandbox Code Playgroud)

前一个type(pair<int,pair<int,int>>)匹配您用于插入set(make_pair(m, make_pair(n,p)))的表达式.如果你使用后者,你会想要make_tuple(m,n,p).

  • @rishabh:`multimap`有一个键和一个值,`multiset`只有一个键.你想达到什么目的?当您显示无意义的代码并且不解释目标时,很难提供帮助.; - ] (2认同)