algorithm意為"算法",是C++的標準模版庫(STL)中最重要的頭檔案之一,提供了大量基於疊代器的非成員模板函式。
基本介紹
- 中文名:算法; 運算法則; 計算程式;
- 外文名:algorithm
- 程式語言:C++
- 類別:C++標準庫
- 頭檔案:#include <algorithm>
- 命名空間:using namespace std;
不修改內容
adjacent_find | 查找兩個相鄰(Adjacent)的等價(Identical)元素 |
all_of | 檢測在給定範圍中是否所有元素都滿足給定的條件 |
any_of | 檢測在給定範圍中是否存在元素滿足給定條件 |
count | 返回值等價於給定值的元素的個數 |
count_if | 返回值滿足給定條件的元素的個數 |
返回兩個範圍是否相等 | |
返回第一個值等價於給定值的元素 | |
find_end | 查找範圍A中與範圍B等價的子範圍最後出現的位置 |
find_first_of | 查找範圍A中第一個與範圍B中任一元素等價的元素的位置 |
find_if | 返回第一個值滿足給定條件的元素 |
find_if_not | 返回第一個值不滿足給定條件的元素 |
for_each | 對範圍中的每個元素調用指定函式 |
mismatch | 返回兩個範圍中第一個元素不等價的位置 |
none_of | 檢測在給定範圍中是否不存在元素滿足給定的條件 |
在範圍A中查找第一個與範圍B等價的子範圍的位置 | |
search_n | 在給定範圍中查找第一個連續n個元素都等價於給定值的子範圍的位置 |
修改內容操作
將一個範圍中的元素拷貝到新的位置處 | |
copy_backward | 將一個範圍中的元素按逆序拷貝到新的位置處 |
copy_if | 將一個範圍中滿足給定條件的元素拷貝到新的位置處 |
copy_n | 拷貝 n 個元素到新的位置處 |
將一個範圍的元素賦值為給定值 | |
fill_n | 將某個位置開始的 n 個元素賦值為給定值 |
將一個函式的執行結果保存到指定範圍的元素中,用於批量賦值範圍中的元素 | |
generate_n | 將一個函式的執行結果保存到指定位置開始的 n 個元素中 |
iter_swap | 交換兩個疊代器(Iterator)指向的元素 |
move | 將一個範圍中的元素移動到新的位置處 |
move_backward | 將一個範圍中的元素按逆序移動到新的位置處 |
random_shuffle | 隨機打亂指定範圍中的元素的位置 |
將一個範圍中值等價於給定值的元素刪除 | |
remove_if | 將一個範圍中值滿足給定條件的元素刪除 |
remove_copy | 拷貝一個範圍的元素,將其中值等價於給定值的元素刪除 |
remove_copy_if | 拷貝一個範圍的元素,將其中值滿足給定條件的元素刪除 |
將一個範圍中值等價於給定值的元素賦值為新的值 | |
replace_copy | 拷貝一個範圍的元素,將其中值等價於給定值的元素賦值為新的值 |
replace_copy_if | 拷貝一個範圍的元素,將其中值滿足給定條件的元素賦值為新的值 |
replace_if | 將一個範圍中值滿足給定條件的元素賦值為新的值 |
反轉排序指定範圍中的元素 | |
reverse_copy | 拷貝指定範圍的反轉排序結果 |
循環移動指定範圍中的元素 | |
rotate_copy | 拷貝指定範圍的循環移動結果 |
用指定的隨機數引擎隨機打亂指定範圍中的元素的位置 | |
swap | 交換兩個對象的值 |
swap_ranges | 交換兩個範圍的元素 |
對指定範圍中的每個元素調用某個函式以改變元素的值 | |
unique | 刪除指定範圍中的所有連續重複元素,僅僅留下每組等值元素中的第一個元素。 |
unique_copy | 拷貝指定範圍的唯一化(參考上述的 unique)結果 |
劃分操作
is_partitioned | 檢測某個範圍是否按指定謂詞(Predicate)劃分過 |
將某個範圍劃分為兩組 | |
partition_copy | 拷貝指定範圍的劃分結果 |
partition_point | 返回被劃分範圍的劃分點 |
stable_partition | 穩定劃分,兩組元素各維持相對順序 |
排序操作
is_sorted | 檢測指定範圍是否已排序 |
is_sorted_until | 返回最大已排序子範圍 |
nth_element | 部分排序指定範圍中的元素,使得範圍按給定位置處的元素劃分 |
partial_sort | 部分排序 |
partial_sort_copy | 拷貝部分排序的結果 |
排序 | |
stable_sort | 穩定排序 |
查找操作
binary_search | 判斷範圍中是否存在值等價於給定值的元素 |
equal_range | 返回範圍中值等於給定值的元素組成的子範圍 |
lower_bound | 返回指向範圍中第一個值大於或等於給定值的元素的疊代器 |
upper_bound | 返回指向範圍中第一個值大於給定值的元素的疊代器 |
集合操作
includes | 判斷一個集合是否是另一個集合的子集 |
inplace_merge | 就緒合併 |
合併 | |
set_difference | 獲得兩個集合的差集 |
set_intersection | 獲得兩個集合的交集 |
set_symmetric_difference | 獲得兩個集合的對稱差 |
set_union | 獲得兩個集合的並集 |
堆操作
is_heap | 檢測給定範圍是否滿足堆結構 |
is_heap_until | 檢測給定範圍中滿足堆結構的最大子範圍 |
make_heap | 用給定範圍構造出一個堆 |
pop_heap | 從一個堆中刪除最大的元素 |
push_heap | 向堆中增加一個元素 |
sort_heap | 將滿足堆結構的範圍排序 |
最大最小操作
is_permutation | 判斷一個序列是否是另一個序列的一種排序 |
lexicographical_compare | 比較兩個序列的字典序 |
max | 返回兩個元素中值最大的元素 |
max_element | 返回給定範圍中值最大的元素 |
返回兩個元素中值最小的元素 | |
min_element | 返回給定範圍中值最小的元素 |
minmax | 返回兩個元素中值最大及最小的元素 |
minmax_element | 返回給定範圍中值最大及最小的元素 |
next_permutation | 返回給定範圍中的元素組成的下一個按字典序的排列 |
返回給定範圍中的元素組成的上一個按字典序的排列 |