set,mutiset的成员函数
时间: 2024-05-21 17:15:01 浏览: 8
set 和 multiset 是 C++ STL 模板库中的容器,用于存储一组自动排序的唯一的元素和一组自动排序的可重复的元素。它们都提供了以下成员函数:
1. **insert()**:用于向集合中插入元素,时间复杂度为 O(logN)。
2. **erase()**:用于删除指定元素,时间复杂度为 O(logN)。
3. **find()**:用于查找指定元素,时间复杂度为 O(logN)。
4. **count()**:用于统计指定元素在集合中出现的次数,时间复杂度为 O(logN)。
5. **size()**:用于返回集合中元素的个数,时间复杂度为 O(1)。
6. **clear()**:用于清空集合中的所有元素,时间复杂度为 O(N)。
7. **begin()** 和 **end()**:用于返回集合的迭代器,可以用于遍历集合中的元素,时间复杂度为 O(1)。
8. **lower_bound()** 和 **upper_bound()**:用于查找指定元素的位置,时间复杂度为 O(logN)。
9. **equal_range()**:用于查找指定元素的范围,时间复杂度为 O(logN)。
以上是 set 和 multiset 共有的成员函数,multiset 还提供了一个成员函数 **count()** 用于统计指定元素在集合中出现的次数,时间复杂度为 O(logN)。
相关问题
std::set的成员函数
std::set 是 C++ STL 中的一个容器类,它是一个有序集合,其中不允许有重复的元素。下面是 std::set 的一些常用成员函数:
1. 构造函数:
- `set()`:默认构造函数,创建一个空的 set。
- `set(InputIterator first, InputIterator last)`:使用指定范围内的元素创建 set。
2. 迭代器相关:
- `begin()`:返回指向第一个元素的迭代器。
- `end()`:返回指向最后一个元素之后位置的迭代器。
- `rbegin()`:返回指向最后一个元素的反向迭代器。
- `rend()`:返回指向第一个元素之前位置的反向迭代器。
3. 容量相关:
- `empty()`:判断 set 是否为空,如果为空则返回 true,否则返回 false。
- `size()`:返回 set 中元素的个数。
- `max_size()`:返回 set 可以容纳的最大元素数量。
4. 插入和删除操作:
- `insert(const value_type& val)`:在 set 中插入一个元素。
- `erase(iterator position)`:删除指定位置的元素。
- `erase(const value_type& val)`:删除指定值的元素。
- `clear()`:清空 set 中的所有元素。
5. 查找和计数操作:
- `find(const value_type& val)`:查找指定值的元素,并返回其迭代器。如果未找到,则返回 set 的末尾迭代器。
- `count(const value_type& val)`:返回 set 中等于指定值的元素个数。
6. 其他操作:
- `swap(set& x)`:交换两个 set 容器的内容。
以上只是 std::set 的一部分成员函数,还有其他一些成员函数可供使用。如果你需要了解更多详细信息,建议查阅 C++ STL 的官方文档或相关教程。
set成员函数都有什么
常用的set成员函数有:
1. insert(val):插入元素val
2. erase(val):删除元素val
3. clear():清空set中所有元素
4. size():返回set中元素的个数
5. empty():判断set是否为空
6. begin():返回指向第一个元素的迭代器
7. end():返回指向最后一个元素后一个位置的迭代器
8. find(val):查找元素val在set中的位置,返回指向该元素的迭代器,若不存在则返回end()
9. count(val):查找元素val在set中出现的次数
10. lower_bound(val):返回第一个大于等于val的元素的迭代器
11. upper_bound(val):返回第一个大于val的元素的迭代器
12. equal_range(val):返回一个pair,其中第一个元素是lower_bound(val)的结果,第二个元素是upper_bound(val)的结果