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
將範圍轉換為上一個排列
(函式模板)