如何在c ++ multiset中使用find和erase

时间:2018-06-14 09:22:56

标签: c++ stl comparator std-pair multiset

我想在多个集合中存储一对元素,并根据存储在该对中的第一个值对其进行排序。我做了一个比较器结构,帮助我做到这一点。但现在我不知道如何使用multiset的查找和擦除功能。 无论如何我可以使用multiset的查找和擦除多对的对吗?

1 个答案:

答案 0 :(得分:0)

multiset<int,int> myset;
myset.insert(make_pair(3,5));
if(myset.find(make_pair(3,5))!=myset.end())
    myset.erase(myset.find(make_pair(3,5)));

这将删除一对(3,5)。如果要删除所有对(3,5),只需执行myset.erase(make_pair(3,5))

std :: multiset :: erase重载,可以取迭代器的值或迭代器/范围。如果传递迭代器,则只删除该元素。但是,如果传递该值,则将删除与该值匹配的所有元素。如果multiset中的数据类型是用户定义的对象,则需要重载==运算符。

std::multiset::erase