C 程式設計必備神器STL 常用演算法

2021-08-17 15:55:29 字數 3528 閱讀 9668

原創 2023年05月07日 12:24:55

adjacent_find   查詢兩個相鄰(adjacent)的等價(identical)元素

all_of (c++11) 檢測在給定範圍中是否所有元素都滿足給定的條件

any_of (c++11) 檢測在給定範圍中是否存在元素滿足給定條件

count 返回值等價於給定值的元素的個數

count_if 返回值滿足給定條件的元素的個數

equal 返回兩個範圍是否相等

find 返回第乙個值等價於給定值的元素

find_end 查詢範圍 a 中與範圍 b 等價的子範圍最後出現的位置

find_first_of 查詢範圍 a 中第乙個與範圍 b 中任一元素等價的元素的位置

find_if 返回第乙個值滿足給定條件的元素

find_if_not (c++11) 返回第乙個值不滿足給定條件的元素

for_each 對範圍中的每個元素呼叫指定函式

mismatch 返回兩個範圍中第乙個元素不等價的位置

none_of (c++11) 檢測在給定範圍中是否不存在元素滿足給定的條件

search 在範圍 a 中查詢第乙個與範圍 b 等價的子範圍的位置

search_n 在給定範圍中查詢第乙個連續 n 個元素都等價於給定值的子範圍的位置

copy    將乙個範圍中的元素拷貝到新的位置處

copy_backward 將乙個範圍中的元素按逆序拷貝到新的位置處

copy_if (c++11) 將乙個範圍中滿足給定條件的元素拷貝到新的位置處

copy_n (c++11) 拷貝 n 個元素到新的位置處

fill 將乙個範圍的元素賦值為給定值

fill_n 將某個位置開始的 n 個元素賦值為給定值

generate 將乙個函式的執行結果儲存到指定範圍的元素中,用於批量賦值範圍中的元素

generate_n 將乙個函式的執行結果儲存到指定位置開始的 n 個元素中

iter_swap 交換兩個迭代器(iterator)指向的元素

move (c++11) 將乙個範圍中的元素移動到新的位置處

move_backward (c++11) 將乙個範圍中的元素按逆序移動到新的位置處

random_shuffle 隨機打亂指定範圍中的元素的位置

remove 將乙個範圍中值等價於給定值的元素刪除

remove_if 將乙個範圍中值滿足給定條件的元素刪除

remove_copy 拷貝乙個範圍的元素,將其中值等價於給定值的元素刪除

remove_copy_if 拷貝乙個範圍的元素,將其中值滿足給定條件的元素刪除

replace 將乙個範圍中值等價於給定值的元素賦值為新的值

replace_copy 拷貝乙個範圍的元素,將其中值等價於給定值的元素賦值為新的值

replace_copy_if 拷貝乙個範圍的元素,將其中值滿足給定條件的元素賦值為新的值

replace_if 將乙個範圍中值滿足給定條件的元素賦值為新的值

reverse 反轉排序指定範圍中的元素

reverse_copy 拷貝指定範圍的反轉排序結果

rotate 迴圈移動指定範圍中的元素

rotate_copy 拷貝指定範圍的迴圈移動結果

shuffle (c++11) 用指定的隨機數引擎隨機打亂指定範圍中的元素的位置

swap 交換兩個物件的值

swap_ranges 交換兩個範圍的元素

transform 對指定範圍中的每個元素呼叫某個函式以改變元素的值

unique 刪除指定範圍中的所有連續重複元素,僅僅留下每組等值元素中的第乙個元素。

unique_copy 拷貝指定範圍的唯一化(參考上述的 unique)結果

is_partitioned (c++11)  檢測某個範圍是否按指定謂詞(predicate)劃分過

partition 將某個範圍劃分為兩組

partition_copy (c++11) 拷貝指定範圍的劃分結果

partition_point (c++11) 返回被劃分範圍的劃分點

stable_partition 穩定劃分,兩組元素各維持相對順序

is_sorted (c++11)   檢測指定範圍是否已排序

is_sorted_until (c++11) 返回最大已排序子範圍

nth_element 部份排序指定範圍中的元素,使得範圍按給定位置處的元素劃分

partial_sort 部份排序

partial_sort_copy 拷貝部分排序的結果

sort 排序(快速排序)

stable_sort 穩定排序

binary_search   判斷範圍中是否存在值等價於給定值的元素

equal_range 返回範圍中值等於給定值的元素組成的子範圍

lower_bound 返回指向範圍中第乙個值大於或等於給定值的元素的迭代器

upper_bound 返回指向範圍中第乙個值大於給定值的元素的迭代器

includes    判斷乙個集合是否是另乙個集合的子集

inplace_merge 就緒合併

merge 合併

set_difference 獲得兩個集合的差集

set_intersection 獲得兩個集合的交集

set_symmetric_difference 獲得兩個集合的對稱差

set_union 獲得兩個集合的並集

is_heap 檢測給定範圍是否滿足堆結構

is_heap_until (c++11) 檢測給定範圍中滿足堆結構的最大子範圍

make_heap 用給定範圍構造出乙個堆

pop_heap 從乙個堆中刪除最大的元素

push_heap 向堆中增加乙個元素

sort_heap 將滿足堆結構的範圍排序

is_permutation (c++11)  判斷乙個序列是否是另乙個序列的一種排序 

max 返回兩個元素中值最大的元素

max_element 返回給定範圍中值最大的元素

min 返回兩個元素中值最小的元素

min_element 返回給定範圍中值最小的元素

minmax (c++11) 返回兩個元素中值最大及最小的元素

minmax_element (c++11) 返回給定範圍中值最大及最小的元素

lexicographical_compare 比較兩個序列的字典序

next_permutation 返回給定範圍中的元素組成的下乙個按字典序的排列

prev_permutation 返回給定範圍中的元素組成的上乙個按字典序的排列

C 提高程式設計 5 STL 常用演算法(查詢演算法)

5.2 常用查詢演算法 5.1 find includeusing namespace std include include include 常用查詢容器 find void test1 查詢容器中 是否有5 這個元素 vector iterator pos find v.begin v.end ...

c 回顧 STL 常用演算法

把vector裡面的數字都乘以2 include include include using namespace std int main transform begin xs end xs begin xs int x return 0 transform的第三個引數也可以是別的容器的某個位置,如...

c 程式設計競賽常用STL總結

1.stl通用函式 empty 堆疊為空則返回真 size 返回棧中元素數目 c1.swap c2 交換兩個容器中的元素 max size 返回容器最大容量 1.stack empty 堆疊為空則返回真 pop 移除棧頂元素 push 在棧頂增加元素 size 返回棧中元素數目 top 返回棧頂元素...