STL學習 演算法篇

2021-07-08 10:06:28 字數 1637 閱讀 4721

stl演算法參考**,大部分演算法附實現原始碼。

一些筆記,有點亂(忘了就翻翻上面的**)

all_of(vec.begin(),vec.end(),比較方法 ) //所有元素都滿足的條件

any_of(); //有滿足條件的

for_each(); //遍歷容器

find find_if(first,last,pred) (查詢 / 查詢第乙個滿足pred的);

find_if_not //查詢第乙個不滿足挑條件的)

find_end() ; //找最後乙個子串行

find_first_of(v1.begin(), v1.end(),v2.begin(), v2.end(),) //返回v2所有元素中的某個元素, 最先出現在v1中的位置

adjacent(first, last) //找到第一對連續相等的位置

mismatch(v1.begin,v1.end(),v2.begin(),pred) //返回v1與v2從第乙個元素開始 第乙個不滿足pred的元素, 容桂v2短於v1,就會++ 超出v2範圍 出錯)

equal(v1.begin(),v1,end(),v2.begin()) //判斷v1的元素與v2.begin() 開始的元素相等 v2要比 v1

is_permutation( v1.begin(),v1,end(),v2.begin()) //判斷v1等於v2從begin()開始,或者是v2從begin開始的子串行,(不考慮順序,會判斷v1中的所有元素);

search(v1.begin(),v1,end(),v2.begin().v2.end() ) //尋找v1中的第乙個子列v2

search_n(v1.begin(),v1,end(),3,4) //尋找v1中連續3個4的位置

random_shuffle //隨機重排

partition //不穩定 把容器分成兩個部分, 前部分滿足某個條件

stable_partition //功能同上 穩定

partition_copy

is_partition

partition_point //對於已分類的容器,找分界點

sort stable_sort //排序和穩定排序

partial_sort 部分排序(排序出整體的前n個,並不是排序前n個);

partial_sort_copy 部分排序,結果輸出到另乙個容器

is_sort //判斷已序

nth_element 排序前面n個元素,(從大到小)

is_sort_until //判讀是否已部分排序

merge(); //合併

inplace_merge(); //內部歸併排序

set_union; //去掉重複元素後合併

set_intersection //取兩個容器交集

set_difference //取容器差集

set_symmetric_difference //取兩個容器不相交的部分

//對排序演算法

make_heap 構造堆

push_heap 往堆化容器內新增

pop_heap 彈出( 不會刪除元素 ,縮小堆化的範圍)

is_heap 容器是否堆化

is_heap_until 判斷容器的前面n個元素是否堆化

STL學習篇 vector的簡單使用

vector,乙個動態陣列!在堆中操作,元素連續存放,可以直接訪問其中的任何元素,初始分配有記憶體,當保留記憶體不夠的時候,會再分配記憶體 下面看乙個vector的建構函式例子 1 include 2 include3 include45 intmain 633 34for vector size ...

STL演算法學習2

二 變異演算法 是一組能夠修改容器元素資料的模板函式。copy v.begin v.end l.begin 將v中的元素複製到l中。1元素複製copy include include include include using namespace std void main 2元素變換transfo...

STL學習筆記15 演算法

演算法庫定義了用來實現各種功能的函式 如查詢 排序 計數 修改等 都是針對指定範圍內元素的操作。需要注意的是,元素的範圍以 first,last 的形式指定,其中 last 指的是範圍內最後乙個元素的下乙個元素。在標頭檔案 中定義。for each 對每個元素執行某個操作 count 返回某元素的數...