1 介绍
本专题用来介绍C++中有序集合multiset
如何删除一个元素。
extract(3)
方法,删除一个元素3。
erase(3)
方法,删除所有元素3。
2 训练
方法1:
#include <iostream>
#include <set>
using namespace std;
int main() {
multiset<int> sa;
sa.insert(1);
sa.insert(2);
sa.insert(3);
sa.insert(3);
sa.insert(4);
sa.extract(3);
for (auto it = sa.begin(); it != sa.end(); it++) {
cout << *it << endl;
}
return 0;
}
程序输出为,
1
2
3
4
方法2:
#include <iostream>
#include <set>
using namespace std;
int main() {
multiset<int> sa;
sa.insert(1);
sa.insert(2);
sa.insert(3);
sa.insert(3);
sa.insert(4);
//不能使用sa.erase(3),这样会删除sa中所有的元素3。
//应当找到指向3的迭代器,然后删除这个迭代器,代码如下。
auto it = sa.find(3);
if (it != sa.end()) sa.erase(it);
for (auto it = sa.begin(); it != sa.end(); it++) {
cout << *it << endl;
}
return 0;
}
程序输出为,
1
2
3
4