一、基础操作接口
1. 元素插入
函数声明 | 容器支持 | 功能说明 | 时间复杂度 |
---|---|---|---|
iterator insert(value) |
全部 | 插入单个元素 | set/multiset: O(logN) unordered: O(1)~O(N) |
void insert(iter first, iter last) |
全部 | 插入范围元素 | O(N * logN) |
代码示例:
set<int> s;
s.insert(5); // 插入单个元素
vector<int> v{
2,4,6};
s.insert(v.begin(), v.end()); // 插入范围
s.emplace(3); // 直接构造,避免拷贝
2. 元素删除
函数声明 | 容器支持 | 功能说明 | 时间复杂度 |
---|---|---|---|
size_type erase(key) |
全部 | 删除所有匹配元素 | set: O(logN + M) unordered: O(M) |
iterator erase(iter pos) |
全部 | 删除指定位置元素 | 平均O(1) |
iterator erase(iter first, iter last) |
全部 | 删除范围元素 | O(M) |
void clear() |
全部 | 清空所有元素 | O(N) |
代码示例:
multiset<int> ms{
1,1,2,3};
ms.erase(1