c 之STL演算法總覽

2021-09-29 07:04:29 字數 3116 閱讀 3708

**中將所有的 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 ...