📅  最后修改于: 2023-12-03 14:39:52.996000             🧑  作者: Mango
[delete()]
C++ STL(Standard Template Library)是C++标准库的一部分,提供了一组通用的数据结构和算法。STL中的多集(multiset)是一种可以存储相同值的有序集合,允许重复的元素存在。delete()
是多集的成员函数之一,用于从多集中删除指定值的元素。
#include <iostream>
#include <set>
int main() {
std::multiset<int> mySet = {1, 2, 2, 3, 4, 4, 4};
std::cout << "Before delete(): ";
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
mySet.erase(mySet.find(2)); // 使用delete()删除元素值为2的元素
std::cout << "After delete(): ";
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
输出:
Before delete(): 1 2 2 3 4 4 4
After delete(): 1 2 3 4 4 4
在以上示例中,我们首先创建了一个多集mySet
,其中包含了一些重复的元素。然后我们使用delete()
函数删除了多集中值为2的一个元素。最后,我们分别输出了删除前和删除后的多集。
delete()
函数只删除多集中的一个元素,即使多集中有多个相同元素值,只有一个会被删除。erase()
函数结合循环来实现。