變更性算法
---------------------------------------------------------
名稱 效果
for_each 針對每一個元素執行某項操做
copy 從第一個元素開始,複製某段區間
copy_backward 從最後一個元素開始,複製某段區間
transform 變更(並複製)元素,將兩個區間的元素合併
merge 合併兩區間內的元素
swap_ranges 交換兩區間內的元素
fill 以給定值替換每個元素
fill_n 以給定值替換n個元素
generate 以某項操做的結果替換每個元素
generate_n 以某項操做的結果替換n個元素
replace 將具備某特定值的元素替換爲另一個值
replace_if 將符合某準則的元素替換爲另一個值
replace_copy 複製整個區間,同時將具備某特定值的元素替換爲另外一個值
replace_copy_if 複製整個區間,同時將符合某個準則的元素替換爲另一個值算法
變序性算法
------------------------------------------------
名稱 效果
reverse 將元素的次序逆轉
reverse_copy 複製的同時,逆序元素順序
rotate 旋轉元素次序
rotate_copy 複製的同時,旋轉元素次序
next_permutation 獲得元素的下一個排序次序
prev_permutation 獲得元素的上一個排列次序
random_shuffle 將元素的次序隨機打亂
partition 改變元素次序,使得符合某準則者移到前面
stable_partition 與partition類似,但保持符合準則與不符合準則的各個元素之間的相對位置dom
名稱 做用
----------------------------------------
for_each 對每一個元素執行某個操做
count 返回元素個數
count_if 返回知足某一準則的元素個數
min_element() 返回最小值元素
max_element() 返回最大值元素
find 搜尋等於某值的第一個元素
find_if 搜尋知足某個準則的第一個元素
search_n 搜尋具備某個特性的第一段"n個連續元素"
serach 搜尋某個子區間第一次出現的位置
find_end 搜尋某個子區間最後一次出現位置
find_first_of 搜尋等於某個值之一的第一個元素
adjacent_find 搜尋連續兩個相等的元素
equal 判斷兩個區間是否相等
mismatch 判斷兩區間是否相等
lexicographical
_compare 是否小於另外一個序列
string搜尋函數和STL搜索算法的比較
搜尋 string函數 STL算法
-------------------------------------------------------------------------------
某元素第一次出現位置 find() find()
某元素最後一次出現位置 rfind() find() 採用逆向迭代器
某子區間第一次出現位置 find() serach()
某子區間最後一次出現位置 rfind() find_end()
某數個元素第一次出現位置 find_first_of() find_first_of()
某數個元素最後一次出現位置 find_last_of() first_first_of() 採用逆向迭代器
n個連續元素第一次出現位置 serach_n()函數
排序算法
----------------------------------------
名稱 效果
sort 對全部元素排序
stable_sort 對全部元素排序,並保持相等元素間的相對次序
partial_sort 排序,直到前n個元素就位
partial_sort_copy 排序,直到前n個元素就位,結果複製於它處
nth_element 根據第n個位置進行排序
partiton 改變元素次序,使得符合某準則的元素放在前面
stable_partition 與partition相同,但保持符合準則和不符合準則的各個元素之間的相對位置
make_heap 將一個區間轉換爲一個heap
push_heap 將一個元素加入到heap
pop_heap 從heap移除一個元素
sort_heap 對heap進行排序,執行後就再也不是一個heap了
sort ----------內部採用快速排序
partial_sort ------- 採用heapsort算法
stable_sort ------- 採用mergesortorm
數值算法
---------------------------------------------------
名字 功能
accumulate 組合全部元素(求總和,總乘積 ....)
inner_product 組合兩區間內的全部元素
adjacent_difference 將每一個元素和前一元素組合
partial_sum 將每一個元素和其先前的全部元素組合排序
移除性算法
------------------------------------------
名稱 效果
remove 將等於某個特定值的元素所有移除
remove_if 將知足某個準則的元素所有移除
remove_copy 將不等於某個特定值的元素所有複製到它處
remove_copy_if 將不知足某個準則的元素所有複製到它處
unique 移除毗鄰的重複元素
unique_copy 移除毗鄰的重複元素,並重復到它處
移除算法只是邏輯上移除元素,手段是:將不須要移除的元素向前覆蓋應被移除的元素。所以它並不改變
操做區間內的元素個數,而是返回邏輯上新的終點位置。
element
已序區間算法
---------------------------------------------
名稱 效果
binary_serach 判斷某區間內是否包含某個元素
includes 判斷某區間內的每一個元素是否都涵蓋於另外一個區間中
lower_bound 搜尋第一個大於等於給定值的元素
upper_bound 搜尋第一個大於給定值的元素
equal_range 返回等於給定值的全部元素的區間
merge 將兩個區間的元素合併
set_union 求兩個區間的並集
set_intersection 求兩個區間的交集
set_difference 求位於第一區間但不位於第二區間的全部元素,造成一個已序區間
set_symmetric_difference 找出只出現於兩區間之一的全部元素,造成一個已序區間
inplace_merge 將兩個連續的已序區間合併
rem