set¶
有序集合¶
std::set,最常用的集合容器,元素会自动按升序排序,每个元素都是唯一的
- 基于红黑树实现
- 插入、删除、查找时间复杂度:\(O(\log n)\)
- 元素自动排序
- 元素唯一
| 方法 | 作用 | 返回值 |
|---|---|---|
std::pair<iterator, bool> insert(const T& value) |
插入元素 | bool 表示是否插入成功 |
template <class InputIterator> void insert(InputIterator first, InputIterator last) |
插入迭代器范围内的所有元素 | |
void insert(std::initializer_list<T> list) |
插入初始化列表 | |
std::pair<iterator, bool> emplace(Args&&... args) |
就地构造元素 | |
iterator erase(const_iterator pos) |
删除指定位置的元素 | 返回下一个元素的迭代器 |
size_type erase(const T& value) |
删除指定值的元素 | 返回删除的元素个数(0 或 1) |
iterator erase(const_iterator first, const_iterator last) |
删除迭代器范围内的所有元素 | 返回最后一个被删元素的下一个迭代器 |
void clear() |
清空集合中的所有元素 | |
iterator find(const T& value) |
查找指定值的元素 | 找到返回迭代器,否则返回 end() |
size_type count(const T& value) const |
统计指定值的元素个数 | 对于 set 返回 0 或 1 |
bool contains(const T& value) const |
判断集合是否包含指定值 | |
bool empty() const |
判断集合是否为空 | 空返回 true |
size_type size() const |
返回集合中元素的个数 |
无序集合¶
std::unordered_set,C++ 11 引入的哈希集合,元素无序存储
- 基于哈希表实现
- 插入、删除、查找平均时间复杂度:\(O(1)\)
- 最坏情况时间复杂度:\(O(n)\)
- 元素无序
- 元素唯一
评论区
欢迎在评论区指出文档错误,为文档提供宝贵意见,或写下你的疑问