1. 排序与查找相关函数
sort(begin, end)
- 描述: 对指定范围内的元素进行排序。
- 时间复杂度: 平均 O(nlogn)。
stable_sort(begin, end)
- 描述: 稳定排序,即在排序过程中保留相等元素的相对顺序。
- 时间复杂度: O(nlogn)。
partial_sort(begin, middle, end)
- 描述: 对指定范围的一部分元素进行排序,使得
middle
之前的元素是有序的。 - 时间复杂度: O(nlogk) (其中
k
是middle - begin
的大小)。
- 描述: 对指定范围的一部分元素进行排序,使得
nth_element(begin, nth, end)
- 描述: 将指定范围内的第
n
大的元素放在nth
位置,前面的元素都小于或等于它,后面的元素都大于或等于它。 - 时间复杂度: 平均 O(n)。
- 描述: 将指定范围内的第
lower_bound(begin, end, value)
- 描述: 查找第一个不小于
value
的元素位置(要求范围已排序)。 - 时间复杂度: O(logn)。
- 描述: 查找第一个不小于
upper_bound(begin, end, value)
- 描述: 查找第一个大于
value
的元素位置(要求范围已排序)。 - 时间复杂度: O(logn)。
- 描述: 查找第一个大于
binary_search(begin, end, value)
- 描述: 判断范围内是否存在等于
value
的元素(要求范围已排序)。 - 时间复杂度: O(logn)。
- 描述: 判断范围内是否存在等于
2. 集合操作相关函数
merge(begin1, end1, begin2, end2, output)
- 描述: 合并两个有序范围,将结果存储在
output
中。 - 时间复杂度: O(n1+n2)(其中
n1
和n2
是两个范围的大小)。
- 描述: 合并两个有序范围,将结果存储在
set_union(begin1, end1, begin2, end2, output)
- 描述: 计算两个已排序范围的并集,将结果存储在
output
中。 - 时间复杂度: O(n1+n2)。
- 描述: 计算两个已排序范围的并集,将结果存储在
set_intersection(begin1, end1, begin2, end2, output)
- 描述: 计算两个已排序范围的交集,将结果存储在
output
中。 - 时间复杂度: O(n1+n2)。
- 描述: 计算两个已排序范围的交集,将结果存储在
set_difference(begin1, end1, begin2, end2, output)
- 描述: 计算两个已排序范围的差集(在第一个范围中,但不在第二个范围中的元素),将结果存储在
output
中。 - 时间复杂度: O(n1+n2)。
- 描述: 计算两个已排序范围的差集(在第一个范围中,但不在第二个范围中的元素),将结果存储在
set_symmetric_difference(begin1, end1, begin2, end2, output)
- 描述: 计算两个已排序范围的对称差,将结果存储在
output
中。 - 时间复杂度: O(n1+n2)。
- 描述: 计算两个已排序范围的对称差,将结果存储在
3. 排列相关函数
next_permutation(begin, end)
- 描述: 生成范围内元素的下一个字典序排列。
- 时间复杂度: O(n)。
prev_permutation(begin, end)
- 描述: 生成范围内元素的上一个字典序排列。
- 时间复杂度: O(n)。
4. 插入与删除操作
push_back(value)
(对于vector
、deque
)- 描述: 将元素添加到容器末尾。
- 时间复杂度: 平均 O(1),但由于需要扩容,最坏情况为 O(n)。
pop_back()
(对于vector
、deque
)- 描述: 移除容器末尾的元素。
- 时间复杂度: O(1)。
insert(position, value)
(对于vector
)- 描述: 在指定位置插入元素。
- 时间复杂度: O(n)。
erase(position)
(对于vector
)- 描述: 移除指定位置的元素。
- 时间复杂度: O(n)。
5. 其他常用函数
find(begin, end, value)
- 描述: 查找范围内等于
value
的第一个元素。 - 时间复杂度: O(n)。
- 描述: 查找范围内等于
count(begin, end, value)
- 描述: 计算范围内等于
value
的元素数量。 - 时间复杂度: O(n)。
- 描述: 计算范围内等于
reverse(begin, end)
- 描述: 反转范围内的元素顺序。
- 时间复杂度: O(n)。
unique(begin, end)
- 描述: 移除范围内相邻的重复元素。
- 时间复杂度: O(n)。
rotate(begin, middle, end)
- 描述: 将范围内的元素旋转,使
middle
成为新范围的起点。 - 时间复杂度: O(n)。
- 描述: 将范围内的元素旋转,使