multiset的find函数和erase函数的用法
时间: 2024-04-14 15:27:22 浏览: 78
C++multiset介绍及详细使用示例(源代码)
multiset是C++标准库中的一个容器,它是一个有序的集合,允许重复的元素存在。
find函数用于在multiset中查找指定的元素,并返回一个指向该元素的迭代器。如果元素不存在,则返回multiset的end迭代器。
以下是find函数的用法示例:
```cpp
std::multiset<int> mySet = {1, 2, 2, 3, 4, 5};
auto it = mySet.find(2); // 查找元素2
if (it != mySet.end()) {
std::cout << "Element found: " << *it << std::endl;
} else {
std::cout << "Element not found" << std::endl;
}
```
erase函数用于从multiset中删除指定的元素或范围。它可以接受一个参数,表示要删除的元素值;也可以接受一对迭代器参数,表示要删除的范围。
以下是erase函数的用法示例:
```cpp
std::multiset<int> mySet = {1, 2, 2, 3, 4, 5};
mySet.erase(2); // 删除所有值为2的元素
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << " ";
}
// 输出:1 3 4 5
auto range = mySet.equal_range(3); // 删除范围内的元素
mySet.erase(range.first, range.second);
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << " ";
}
// 输出:1 4 5
```
注意,erase函数返回的迭代器指向被删除元素之后的位置。
阅读全文