c++ STL Algorithm簡單總結備忘

lipeng08發表於2017-01-14

前言

有感於對stl中algorithm類別的不甚瞭解,於是最近幾天利用白天或者晚上零碎的時間對stl中的algorithm的東西進行了簡單的瀏覽,測試和歸納。

演算法分類

非修改演算法

  • 序列滿足某一條件
    all_of返回bool型別,是否全部滿足某一條件
    any_of是否有某一個滿足某一條件
    none_of是否任何一個都不滿足某一條件
  • 遍歷
    for_each 對序列中的元素進行某一個操作

    例如我喜歡用的輸出方法:
    for_each(v1.begin(), v1.end(), [](int x){cout << x << " "; }); cout << endl;
    
  • 查詢
    find查詢某一個元素
    find_if查詢滿足某一個條件第一個元素位置
    find_if_not查詢不滿足條件的第一個元素位置
    奇葩的幾個
    find_end查詢一個序列(引數2)在另一個序列(引數1)中最後出現的位置
    find_first_of查詢在一個序列(引數2)某一個元素在另一個序列(引數1)中第一次出現的位置
    adjacent_find查詢在一個序列中連續兩個元素第一次滿足某一個條件的位置
  • 統計
    count 統計元素個數
    count_if統計滿足條件的元素個數
  • 比較
    mismatch兩個序列第一個不匹配的位置
    equal兩個序列是否完全一樣
  • 序列查詢
    search查詢一個序列在另一個序列第一次出現的位置(與find_end對應,也是奇葩)
    search_n查詢一個n個val的序列在另一個序列第一次出現的位置

修改序列類

分割槽partition

排序

二分查詢

集合類操作

最大最小元素

排列

內容有空的話,會不斷追加

參考文獻