STL函式模板(即演算法)一覽

2021-05-01 20:14:04 字數 2170 閱讀 7804

查詢演算法

adjacent_find:找出乙個串中第乙個不符合次序的地方

find,find_if:找出第乙個符合條件的元素

find_first_of:在乙個串中尋找第乙個與另乙個串中任意乙個元素相等的元素

search_n:在乙個串中尋找乙個元素第n次出現的地方

count,count_if:乙個串中符合條件的元素個數

mismatch:找出兩個串第乙個不相等的地方

equal:判斷兩個串的指定部分是否完全相等

lexicographical_compare,lexicographical_compare_3way:按詞典順序比較字串

search:在乙個串中尋找乙個子串第一次出現的位置

find_end:尋找乙個子串最後一次出現的地方

binary_search,lower_bound,upper_bound,equal_range:在已排序的串中進行二分法搜尋

min,max:比較兩個數,返回數值

min_element,max_element:尋找指定範圍內的最值

改變內容的演算法

copy,copy_n:從指定位置開始複製資料

copy_backward:指定目標的結尾進行複製

swap:交換兩個容器內容

iter_swap:交換兩個指標指向內容

swap_range:交換指定範圍內的內容

transform:把元素逐個進行一元或二元運算結果放在新的容器

fill,fill_n:往容器的一定範圍內填入相同元素

generate,generate_n:往容器的一定範圍內填入指定的無參函式(如rand)的返回值

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:迴圈排列指定範圍的內容

random_shuffle:隨機重排指定範圍的內容

next_permutation,prev_permutation:按下一種或上一種排列方式排列指定範圍的內容(一共有n!種排列方式)

random_sample,random_sample_n:對指定範圍的內容進行隨機抽樣

partition,stable_partition:把指定範圍內元素按指定區分法則分成兩部分

排序演算法

sort:快速排序

stable_sort:穩定排序

partial_sort,partial_sort_copy:只排出最大(或最小)的前幾位

nth_element:快速排序的一輪

merge,inplace_merge:歸併排序的一輪

is_sorted:判斷是否已排序

make_heap:生成堆

pop_heap:取出最大元素並重建堆

push_heap:往堆中新增最後乙個元素並重建堆

sort_heap:堆排序

is_heap:判斷是否是堆

集合運算的演算法(使用時應保證容器已排序)

includes:乙個已排序集合是否含於另乙個

set_union:取兩個已排序集合的並集

set_inter:取兩個已排序集合的交集

set_difference:乙個已排序集合中不存在於另乙個集合中的元素構成的集合

set_symmetric_difference:取兩個已排序集合的異或

特定演算法

itoa:把從指定值遞增1的數列填入陣列

accumulate:累加求總和

inner_product:求兩個向量的內積

partial_sum:逐限累加成新陣列

adjacent_difference:逐限求差成新陣列

power:對乙個數累乘或累次執行乙個操作

(ps:以上內容**自http://hi.baidu.com/wwbmmm/blog/item/c2e29b3f950ea1fc828b1319.html)

STL函式模板(即演算法)一覽

查詢演算法 adjacent find 找出乙個串中第乙個不符合次序的地方 find,find if 找出第乙個符合條件的元素 find first of 在乙個串中尋找第乙個與另乙個串中任意乙個元素相等的元素 search n 在乙個串中尋找乙個元素第n次出現的地方 count,count if ...

STL 函式模板

函式模板 1.有兩個型別引數的函式模板 2.在template語句與函式模板定義之間不允許有別的語句 3.同一函式模板例項化後的所有模板函式都必須執行相同的操作 4.函式模板也可以過載 5.函式模板與同名的非模板函式可以過載,這種情況下,呼叫時先找引數完全匹配的非模板函式,如果找不到就呼叫匹配的模板...

STL 函式模板筆記

模板技術 型別引數化 編寫 可以忽略型別 為了讓編譯器區分是普通函式還是 函式模板 template template void myswap t a,t b 每個模板函式都要加 template void test01 使用函式模板 函式模板可以做過載 普通函式可以做自動型別轉化 函式模板可以像普...