**中將所有的 stl 演算法的名稱、用途、檔案分布等等,依演算法名稱的字母順序列表。
**中凡是不在 stl 標準規格之列的 sgi 專屬演算法,都以 * 加以表示。
演算法名稱
演算法用途
質變所在檔案
accumulate
元素累計
否adjacent_difference
相鄰元素的差額
是 if in-place
adjacent_find
查詢相鄰而重複的元素(或者符合某條件)
否binary_search
二分查詢
否copy
複製是 if in-place
copy_backward
逆向複製
是 if in-place
copy_n *
複製 n 個元素
是 if in-place
count計數否
count_if
在特定條件下計數
否equal
判斷兩個區間是否相等
否equal_range
在有序區間查詢某值
否fill
改填元素值
是fill_n
改填元素值 n 次
是find
迴圈查詢
否find_if
迴圈查詢符合特定條件者
否find_end
查詢子串行最後一次出現位置
否find_first_of
查詢子串行元素首次出現位置
否foreach
對區間每個元素施行某操作
否generate
以特定操作結果填充區間元素
是generate_n
以特定操作結果填充區間 n 個元素
是includes
是否涵蓋於某序列之中
否inner_product內積否
inplace_merge
合併並就地替換
是iota *
在區間填入指定的遞增序列
是is_heap *
判斷區間是否為乙個 heap
否is_sorted *
判斷區間是否已排序
否iter_swap
元素互換
是lexicographical_compare
以字典順序進行比較
否lower_bound
插入指定元素而不影響排序的最低位置
否max
最大值否
max_element
最大值所在位置
否merge
合併兩個序列
是 if in-place
min最小值
否min_element
最小值所在位置
否mismatch
找出不匹配點
否next_premutation
獲得下乙個排列組合
是nth_element
重新排列序列第 n 個元素的左右兩端
是partial_sort
區域性排序
是partial_sort_copy
區域性排序並複製到他處
是 if in-place
partial_sum
區域性求和
是 if in-place
partition分割是
prev_permutation
獲得前乙個排列組合
是power *
冪次方,表示式可指定
否random_shuffle
隨機重排元素
是random_sample *
隨機取樣
是 if in-place
random_sample_n *
隨機取樣
是 if in-place
remove
刪除某類元素
是remove_copy
刪除某類元素並將結果複製到別處
是remove_if
有條件地刪除某類元素
是remove_copy_if
有條件地刪除某類元素並將結果複製到別處
是replace
替換某類元素
是replace_copy
替換某類元素並將結果複製到別處
是replace_if
有條件地替換
是replace_copy_if
有條件地替換並將結果複製到別處
是reverse
反轉元素次序
是reverse_copy
反轉元素次序並將結果複製到別處
是rotate旋轉是
rotate_copy
旋轉並將結果複製到別處
是search
查詢某個子串行
否search_n
查詢連續發生 n 次的子串行
否set_difference
差集是 if in-place
set_intersection
交集是 if in-place
set_symmetric_difference
對稱差集
是 if in-place
set_union
並集是 if in-place
sort排序是
stable_partition
分割並保持元素相對次序
是stable_sort
排序並保持等值元素相對次序
是swap
交換元素
是swap_ranges
交換指定區間
是transform
以兩個序列為基礎互動產生第三個序列
是unique
將重複元素摺疊使之唯一
是unique_copy
將重複元素摺疊使之唯一並複製到別處
是 if in-place
upper_bound
插入指定元素而不影響排序的最高位置
否make_heap
製造乙個 heap
是pop_heap
從 heap 取出乙個元素
是push_heap
將乙個元素推進 heap 內
是sort_heap
對 heap 排序
是
STL之演算法
演算法是指解決問題的方 而完整的描述,對於規範的輸入,在有限時間內要獲得所需要的輸出。不同的演算法可能使用不同的時間 空間或效率完成同樣的任務。想要評估乙個演算法的好壞,目前可以通過時間複雜度和空間複雜度來進行衡量。時間複雜度,是指演算法執行指令所需的計算量。演算法的執行時間和其所要處理的資料之間存...
STL演算法之for each
轉接自stl演算法 for each 對區間裡每個元素執行相應操作 注 for each 接受乙個操作,操作可改動所接受實參 所以該實參必須以by reference方式傳遞 include include include using namespace std for each 對區間裡每個元素執...
STL之排序演算法
1.merge 以下是排序和通用演算法 提供元素排序策略 merge 合併兩個有序序列,存放到另乙個序列。例如 vecinta,vecintb,vecintc是用vector宣告的容器,vecinta已包含1,3,5,7,9元素,vecintb已包含2,4,6,8元素 vecintc.resize ...