多组配对,找到

Multiset of pair, find

本文关键字:找到      更新时间:2023-10-16

我需要在由我自己的函数排序的对的mutliset中找到并擦除一个值。显然,.fund总是将迭代器返回到末尾,而不是返回到搜索到的值。有什么建议吗?这就是功能:

struct cmp
{
  bool operator() (const para &a, const para &b)
  {
    if (a.first > b.first) return false;
    if (b.first > a.first) return true;
    if (a.second < b.second) return false;
    else return true;
  }
};

编辑:

kolej.insert(para(0,2));
if (kolej.find(para(0,2)) == kolej.end()) printf("Jej");

即使我做了这样的事情,其中para是pair<int,int>,kolej是multiset,它也会一直打印"Jej"

对于相等的对象,您的比较器将计算为true。您应该更改

if (a.second < b.second) return false;
else return true;

return b.second > a.second;