演算法庫定義了用來實現各種功能的函式(如查詢、排序、計數、修改等),都是針對指定範圍內元素的操作。需要注意的是,元素的範圍以 [first, last) 的形式指定,其中 last 指的是範圍內最後乙個元素的下乙個元素。在標頭檔案 中定義。
for_each()
//對每個元素執行某個操作
count()
//返回某元素的數量
count_if()
//返回滿足特定條件的元素的數量
min_element()
//返回最小值
max_element()
//返回最大值
minmax_element()
//返回最大值和最小值
find()
//搜尋等於某值的第乙個元素
find_if()
//查詢滿足特定條件的第乙個元素
find_if()
//查詢不滿足特定條件的第乙個元素
search()
//查詢某區間第一次出現位置
search_n()
//查詢滿足條件的第一段「n個連續元素」
find_end()
//查詢一定範圍內最後一次出現位置
find_first_of()
//查詢等於某個值的第乙個元素
adjacent_find()
//查詢彼此相鄰的兩個相同(或其它的關係)的元素
equal()
//確定兩區間是否相同
is_permutation()
//返回兩個無序範圍內是否包含相同元素
mismatch()
//查詢兩個序列中,第乙個不同元素的位置
lexicographical_compare()
//返回字典序更小的範圍
is_sorted()
//返回範圍內的元素是否排序
is_sorted_until()
//返回範圍內第乙個無序元素
is_partitioned()
//返回範圍內的元素在某準則下是否被劃分為兩個部分
partition_point()
//返回範圍內區可進行邊間劃分的元素
is_heap()
//返回範圍內的元素是否是堆排序
is_heap_until()
//返回範圍內第乙個非堆排序的元素
all_of()
//範圍內是否所有元素都滿足某條件
any_of()
//範圍內是否存在某元素滿足某條件
none_of()
//範圍內是否沒有元素滿足某條件
for_each()
//對每個元素執行某個操作
copy()
//從第乙個元素開始,複製某個範圍
copy_if()
//根據某個準則複製元素
copy_n()
//複製n個元素
copy_backward()
//從最後乙個元素開始,從後往前複製某個範圍
move()
//將某一範圍的元素移動到乙個新的位置
move_backward()
//按從後往前的順序移動某一範圍的元素到新的位置
transform()
//合併兩個範圍內的元素並進行修改
merge()
//合併兩個範圍元素
swap_ranges()
//交換兩個範圍的元素
fill()
//將乙個值賦給每個元素
fill_n()
//將乙個值賦給n個的元素
generate()
//將函式的結果賦給每個元素
generate_n()
//將函式的結果賦給n個元素
iota()
//將公升序序列的值賦給每個元素
replace()
//用乙個值替換另乙個值
replace_if()
//將所有滿足特定條件的元素替換為另乙個值
replace_copy()
//複製乙個範圍內的元素,並用乙個值替換為另乙個值
replace_copy_if()
//複製乙個範圍內的元素,並將滿足特定條件的元素替換為另乙個值
remove()
//刪除擁有特定值的元素
remove_if()
//刪除滿足特定條件的元素
remove_copy()
//複製不匹配特定值的元素
remove_copy_if()
//複製不滿足特定條件的元素
unique()
//刪除區間內連續重複的元素
unique_copy()
//刪除區間內連續重複的元素並複製
reverse()
//逆序排列所有元素
reverse_copy()
//複製所有元素並逆序
rotate()
//旋轉元素順序
rotate_copy()
//複製所有元素並旋轉
next_permutation()
//置換元素順序
prev_permutation()
//置換元素順序
shuffle()
//使元素變為隨機順序
random_shuffle()
//使元素變為隨機順序
partition()
//把乙個區間的元素分為兩組,前面的一組滿足某個條件
stable_partition()
//將元素分為兩組,同時保留其相對順序
partition_copy()
//將區間內的元素分為兩組複製到不同位置
sort()
//所有元素排序
stable_sort()
//排序同時保留相對位置
partial_sort()
//排序,直到前n個元素就位
partial_sort_copy()
//排序,直到前n個元素就位,複製這個結果
nth_element()
//根據第n個位置進行排序
partition()
//改變元素次序,是符合某準則的元素放在前面
stable_partition()
//partition()相同,但保持相對位置
partition_copy()
//改變元素次序,是符合某準則的元素放在前面,並複製
make_heap()
//將乙個區間轉換為乙個heap
push_heap()
//將元素加入到乙個heap
pop_heap()
//從heap中刪除乙個元素
sort_heap()
//對heap進行排序
binary_search()
//判斷區間內是否包含某個元素
includes()
//判斷區間內每個元素是否都涵蓋於另乙個區間中
lower_bound()
//搜尋第乙個「大於等於給定值」的元素
upper_bound()
//搜尋第乙個「大於給定值」的元素
equal_range()
//返回「等於給定值」的元素區間
merge()
//合併兩個區間的元素
set_union()
//求兩個區間的並集
set_intersection()
//求兩個區間的交集
set_difference()
//求位於第乙個區間不位於第二個區間的所有元素,形成乙個已序區間
set_symmetric_difference()
//找出只出現於兩區間之一的所有元素,形成乙個已序區間
inplace_merge()
//將兩個連續的已序區間合併
partition_point()
//返回區間劃分邊界元素
accumulate()
//組合所有元素(求和、求積等)
inner_product()
//組合兩區間內所有元素
adjacent_difference()
//將每個元素和其前一元素組合
partial_sum()
//將每個元素和其先前的所以元素組合
STL學習筆記(演算法概述)
演算法標頭檔案 要運用c 標準程式庫的演算法,首先必須包含標頭檔案 使用stl演算法時,經常需要用到仿函式以及函式配接器。它們定義域標頭檔案中。演算法的分類 可以按以下分類方式描述各個stl演算法 非變動性演算法 nonmodifying algorithms 變動性演算法 modifying al...
STL學習筆記之sort演算法
stl所提供的各式各樣的演算法中,sort 是最複雜龐大的乙個。這個演算法接受兩個隨機訪問迭代器,然後將區間內的所有元素以漸增方式由小到大重新排列。還有個版本則允許使用者指定乙個仿函式,作為排序標準。stl中的所有關係型容器都擁有自動排序功能,所以不需要sort演算法。序列式容器中的stack,de...
STL學習筆記(數值演算法)
運用數值演算法之前必須先加入標頭檔案 加工運算後產生結果 1.對序列進行某種運算 taccumulate inputiterator beg,inputiterator end,t initvalue taccumulate inputiterator beg,inputiterator end,t...