C++STL库之algorithm库总结
其他
2020-05-25 10:44:39
阅读次数: 0
排序相关操作
is_sorted |
检测指定范围是否已排序 |
is_sorted_until |
返回最大已排序子范围 |
nth_element |
部份排序指定范围中的元素,使得范围按给定位置处的元素划分 |
partial_sort |
部份排序 |
partial_sort_copy |
拷贝部分排序的结果 |
sort |
排序 |
stable_sort |
稳定排序 |
二分查找操作
binary_search |
判断范围中是否存在值等价于给定值的元素 |
equal_range |
返回范围中值等于给定值的元素组成的子范围 |
lower_bound |
返回指向范围中第一个值大于或等于给定值的元素的迭代器 |
upper_bound |
返回指向范围中第一个值大于给定值的元素的迭代器 |
最大最小操作
is_permutation C++11 |
判断一个序列是否是另一个序列的一种排序 |
lexicographical_compared |
比较两个序列的字典序 |
max |
返回两个元素中值最大的元素 |
max_element |
返回给定范围中值最大的元素 |
min |
返回两个元素中值最小的元素 |
min_element |
返回给定范围中值最小的元素 |
minmaxC++11 |
返回两个元素中值最大及最小的元素 |
minmax_elementC++11 |
返回给定范围中值最大及最小的元素 |
next_permutation |
返回给定范围中的元素组成的下一个按字典序的排列 |
prev_permutation |
返回给定范围中的元素组成的上一个按字典序的排列 |
堆操作:
is_heap |
检测给定范围是否满足堆结构 |
is_heap_until C++11 |
检测给定范围中满足堆结构的最大子范围 |
make_heap |
用给定范围构造出一个堆 |
pop_heap |
从一个堆中删除最大的元素 |
push_heap |
向堆中增加一个元素 |
sort_heap |
将满足堆结构的范围排序 |
集合操作:
includes |
判断一个集合是否是另一个集合的子集 |
inplace_merge |
就绪合并 |
merge |
合并 |
set_difference |
获得两个集合的差集 |
set_intersection |
获得两个集合的交集 |
set_symmetric_difference |
获得两个集合的对称差 |
set_union |
获得两个集合的并集 |
划分操作:
is_partitioned C++11 |
检测某个范围是否按指定谓词(Predicate)划分过 |
partition |
将某个范围划分为两组 |
partition_copy C++11 |
拷贝指定范围的划分结果 |
partition_point C++11 |
返回被划分范围的划分点 |
stable_partition |
稳定划分,两组元素各维持相对顺序 |
不修改内容的序列操作:
adjacent_find |
查找两个相邻(Adjacent)的等价(Identical)元素 |
all_of C++11 |
检测在给定范围中是否所有元素都满足给定的条件 |
any_of C++11 |
检测在给定范围中是否存在元素满足给定条件 |
count |
返回值等价于给定值的元素的个数 |
count_if |
返回值满足给定条件的元素的个数 |
equal |
返回两个范围是否相等 |
find |
返回第一个值等价于给定值的元素 |
find_end |
查找范围A中与范围B等价的子范围最后出现的位置 |
find_first_of |
查找范围A中第一个与范围B中任一元素等价的元素的位置 |
find_if |
返回第一个值满足给定条件的元素 |
find_if_not C++11 |
返回第一个值不满足给定条件的元素 |
for_each |
对范围中的每个元素调用指定函数 |
mismatch |
返回两个范围中第一个元素不等价的位置 |
none_of C++11 |
检测在给定范围中是否不存在元素满足给定的条件 |
search |
在范围A中查找第一个与范围B等价的子范围的位置 |
search_n |
在给定范围中查找第一个连续n个元素都等价于给定值的子范围的位置 |
修改内容的序列操作:
copy |
将一个范围中的元素拷贝到新的位置处 |
copy_backward |
将一个范围中的元素按逆序拷贝到新的位置处 |
copy_if C++11 |
将一个范围中满足给定条件的元素拷贝到新的位置处 |
copy_n C++11 |
拷贝 n 个元素到新的位置处 |
fill |
将一个范围的元素赋值为给定值 |
fill_n |
将某个位置开始的 n 个元素赋值为给定值 |
generate |
将一个函数的执行结果保存到指定范围的元素中,用于批量赋值范围中的元素 |
generate_n |
将一个函数的执行结果保存到指定位置开始的 n 个元素中 |
iter_swap |
交换两个迭代器(Iterator)指向的元素 |
move C++11 |
将一个范围中的元素移动到新的位置处 |
move_backward C++11 |
将一个范围中的元素按逆序移动到新的位置处 |
random_shuffle |
随机打乱指定范围中的元素的位置 |
remove |
将一个范围中值等价于给定值的元素删除 |
remove_if |
将一个范围中值满足给定条件的元素删除 |
remove_copy |
拷贝一个范围的元素,将其中值等价于给定值的元素删除 |
remove_copy_if |
拷贝一个范围的元素,将其中值满足给定条件的元素删除 |
replace |
将一个范围中值等价于给定值的元素赋值为新的值 |
replace_copy |
拷贝一个范围的元素,将其中值等价于给定值的元素赋值为新的值 |
replace_copy_if |
拷贝一个范围的元素,将其中值满足给定条件的元素赋值为新的值 |
replace_if |
将一个范围中值满足给定条件的元素赋值为新的值 |
reverse |
反转排序指定范围中的元素 |
reverse_copy |
拷贝指定范围的反转排序结果 |
rotate |
循环移动指定范围中的元素 |
rotate_copy |
拷贝指定范围的循环移动结果 |
shuffle C++11 |
用指定的随机数引擎随机打乱指定范围中的元素的位置 |
swap |
交换两个对象的值 |
swap_ranges |
交换两个范围的元素 |
transform |
对指定范围中的每个元素调用某个函数以改变元素的值 |
unique |
删除指定范围中的所有连续重复元素,仅仅留下每组等值元素中的第一个元素。 |
unique_copy |
拷贝指定范围的唯一化(参考上述的 unique)结果 |
转载自blog.csdn.net/weixin_43034390/article/details/104233195