我想在多个集合中存储一对元素,并根据存储在该对中的第一个值对其进行排序。我做了一个比较器结构,帮助我做到这一点。但现在我不知道如何使用multiset的查找和擦除功能。 无论如何我可以使用multiset的查找和擦除多对的对吗?
答案 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中的数据类型是用户定义的对象,则需要重载==运算符。