cplusplus
.com
教程
参考
文章
论坛
C++
教程
参考
文章
论坛
参考
C 库
<cassert> (assert.h)
<cctype> (ctype.h)
<cerrno> (errno.h)
C++11
<cfenv> (fenv.h)
<cfloat> (float.h)
C++11
<cinttypes> (inttypes.h)
<ciso646> (iso646.h)
<climits> (limits.h)
<clocale> (locale.h)
<cmath> (math.h)
<csetjmp> (setjmp.h)
<csignal> (signal.h)
<cstdarg> (stdarg.h)
C++11
<cstdbool> (stdbool.h)
<cstddef> (stddef.h)
C++11
<cstdint> (stdint.h)
<cstdio> (stdio.h)
<cstdlib> (stdlib.h)
<cstring> (string.h)
C++11
<ctgmath> (tgmath.h)
<ctime> (time.h)
C++11
<cuchar> (uchar.h)
<cwchar> (wchar.h)
<cwctype> (wctype.h)
容器
C++11
<array>
<deque>
C++11
<forward_list>
<list>
<map>
<queue>
<set>
<stack>
C++11
<unordered_map>
C++11
<unordered_set>
<vector>
输入/输出
<fstream>
<iomanip>
<ios>
<iosfwd>
<iostream>
<istream>
<ostream>
<sstream>
<streambuf>
多线程
C++11
<atomic>
C++11
<condition_variable>
C++11
<future>
C++11
<mutex>
C++11
<thread>
其他
<algorithm>
<bitset>
C++11
<chrono>
C++11
<codecvt>
<complex>
<exception>
<functional>
C++11
<initializer_list>
<iterator>
<limits>
<locale>
<memory>
<new>
<numeric>
C++11
<random>
C++11
<ratio>
C++11
<regex>
<stdexcept>
<string>
C++11
<system_error>
C++11
<tuple>
C++11
<type_traits>
C++11
<typeindex>
<typeinfo>
<utility>
<valarray>
<algorithm>
adjacent_find
C++11
all_of
C++11
any_of
binary_search
copy
copy_backward
C++11
copy_if
C++11
copy_n
count
count_if
equal
equal_range
fill
fill_n
find
find_end
find_first_of
find_if
C++11
find_if_not
for_each
generate
generate_n
includes
inplace_merge
C++11
is_heap
C++11
is_heap_until
C++11
is_partitioned
C++11
is_permutation
C++11
is_sorted
C++11
is_sorted_until
iter_swap
lexicographical_compare
lower_bound
make_heap
max
max_element
merge
min
min_element
C++11
minmax
C++11
minmax_element
mismatch
C++11
move
C++11
move_backward
next_permutation
C++11
none_of
nth_element
partial_sort
partial_sort_copy
partition
C++11
partition_copy
C++11
partition_point
pop_heap
prev_permutation
push_heap
random_shuffle
remove
remove_copy
remove_copy_if
remove_if
replace
replace_copy
replace_copy_if
replace_if
reverse
reverse_copy
rotate
rotate_copy
search
search_n
set_difference
set_intersection
set_symmetric_difference
set_union
C++11
shuffle
sort
sort_heap
stable_partition
stable_sort
swap
swap_ranges
transform
unique
unique_copy
upper_bound
参考
<algorithm>
库
<algorithm>
<algorithm>
标准模板库:算法
头文件
<algorithm>
定义了一系列函数,这些函数专门设计用于元素范围的操作。
范围(range)是指任何可以通过迭代器或指针访问的对象序列,例如数组或某些
STL 容器
的实例。但请注意,算法通过迭代器直接对值进行操作,不以任何方式影响任何可能容器的结构(它从不影响容器的大小或存储分配)。
<algorithm> 中的函数
非修改序列操作
:
all_of
测试范围中所有元素是否满足条件
(函数模板)
any_of
测试范围中是否有任何元素满足条件
(函数模板)
none_of
测试是否没有元素满足条件
(函数模板)
for_each
将函数应用于范围
(函数模板)
find
在范围中查找值
(函数模板)
find_if
在范围中查找元素
(函数模板)
find_if_not
在范围中查找元素(否定条件)
(函数模板)
find_end
在范围中查找最后一个子序列
(函数模板)
find_first_of
在范围中查找集合中的元素
(函数模板)
adjacent_find
在范围中查找相等的相邻元素
(函数模板)
count
计算值在范围中出现的次数
(函数模板)
count_if
返回范围中满足条件的元素数量
(函数模板)
mismatch
返回两个范围首次出现差异的位置
(函数模板)
equal
测试两个范围中的元素是否相等
(函数模板)
is_permutation
测试一个范围是否是另一个范围的排列
(函数模板)
search
在范围中搜索子序列
(函数模板)
search_n
在范围中搜索元素
(函数模板)
修改序列操作
:
copy
复制元素范围
(函数模板)
copy_n
复制元素
(函数模板)
copy_if
复制范围中的某些元素
(函数模板)
copy_backward
向后复制元素范围
(函数模板)
move
移动元素范围
(函数模板)
move_backward
向后移动元素范围
(函数模板)
swap
交换两个对象的值
(函数模板)
swap_ranges
交换两个范围的值
(函数模板)
iter_swap
交换两个迭代器所指向对象的值
(函数模板)
transform
转换范围
(函数模板)
replace
替换范围中的值
(函数模板)
replace_if
替换范围中的值
(函数模板)
replace_copy
复制范围并替换值
(函数模板)
replace_copy_if
复制范围并替换值
(函数模板)
fill
用值填充范围
(函数模板)
fill_n
用值填充序列
(函数模板)
generate
使用函数为范围生成值
(函数模板)
generate_n
使用函数为序列生成值
(函数模板)
remove
从范围中移除值
(函数模板)
remove_if
从范围中移除元素
(函数模板)
remove_copy
复制范围并移除值
(函数模板)
remove_copy_if
复制范围并移除值
(函数模板)
unique
移除范围中的连续重复项
(函数模板)
unique_copy
复制范围并移除重复项
(函数模板)
reverse
反转范围
(函数模板)
reverse_copy
复制并反转范围
(函数模板)
rotate
将范围中的元素向左旋转
(函数模板)
rotate_copy
复制向左旋转后的范围
(函数模板)
random_shuffle
随机重排范围中的元素
(函数模板)
shuffle
使用生成器随机重排范围中的元素
(函数模板)
分区
:
is_partitioned
测试范围是否已分区
(函数模板)
partition
将范围划分为两部分
(函数模板)
stable_partition
将范围划分为两部分 - 稳定排序
(函数模板)
partition_copy
将范围划分为两部分
(函数模板)
partition_point
获取分区点
(函数模板)
排序
:
sort
对范围中的元素进行排序
(函数模板)
stable_sort
对元素进行排序,保留相等元素的顺序
(函数模板)
partial_sort
对范围中的元素进行部分排序
(函数模板)
partial_sort_copy
复制并对范围进行部分排序
(函数模板)
is_sorted
检查范围是否已排序
(函数模板)
is_sorted_until
在范围中查找第一个未排序的元素
(函数模板)
nth_element
对范围中的元素进行排序
(函数模板)
二分搜索
(对已分区/已排序的范围进行操作)
lower_bound
返回指向下界的迭代器
(函数模板)
upper_bound
返回指向上界的迭代器
(函数模板)
equal_range
获取相等元素的子范围
(函数模板)
binary_search
测试值是否存在于已排序序列中
(函数模板)
合并
(对已排序的范围进行操作)
merge
合并已排序的范围
(函数模板)
inplace_merge
合并连续的已排序范围
(函数模板)
includes
测试一个已排序范围是否包含另一个已排序范围
(函数模板)
set_union
两个已排序范围的并集
(函数模板)
set_intersection
两个已排序范围的交集
(函数模板)
set_difference
两个已排序范围的差集
(函数模板)
set_symmetric_difference
两个已排序范围的对称差集
(函数模板)
堆
:
push_heap
将元素推入堆范围
(函数模板)
pop_heap
从堆范围中弹出元素
(函数模板)
make_heap
从范围创建堆
(函数模板)
sort_heap
对堆的元素进行排序
(函数模板)
is_heap
测试范围是否为堆
(函数模板)
is_heap_until
查找第一个不符合堆顺序的元素
(函数模板)
最小/最大值
:
min
返回最小值
(函数模板)
max
返回最大值
(函数模板)
minmax
返回最小和最大元素
(函数模板)
min_element
返回范围中的最小元素
(函数模板)
max_element
返回范围中的最大元素
(函数模板)
minmax_element
返回范围中的最小和最大元素
(函数模板)
其他
:
lexicographical_compare
字典序小于比较
(函数模板)
next_permutation
将范围转换为下一个排列
(函数模板)
prev_permutation
将范围转换为上一个排列
(函数模板)