STL演算法分類

2021-10-04 01:40:05 字數 775 閱讀 8203

stl 中,演算法就是函式模板。stl 中的演算法大多數是用來對容器進行操作的,如排序、 查詢等。大部分演算法都是在標頭檔案 中定義的,還有些演算法用於數值處理,定義在標頭檔案 中。

stl 中的演算法的分類方法。

1 . 不變序列演算法。

2 . 變值演算法。

3 . 刪除演算法。

4 . 變序演算法。

5 . 排序演算法。

6 . 有序區間演算法。

7 . 數值演算法。

有的演算法可能同時屬於多個分類。

實際上,大多數過載的演算法都有兩個版本,其中乙個用==判斷元素是否相等,或用《比較大小;而另乙個版本多出來乙個型別引數 pred 以及函式形參 pred op,該版本通過表示式op(x, y)的返回值是 true 還是 false 來判斷 x 是否「等於」y 或者「小於」y。下面有兩個版本的 min_element:

iterate min_element

(iterate first, iterate last)

;iterate min_element

(iterate first, iterate last, pred op)

;

min_element 返回區間中最小的元素。第乙個版本用《比較大小,而第二個版本用自定義的比較器 op 來比較大小,op(x, y) 的值為 true,則說明 x 比 y 小。

類似 sort 和 min_element 這樣有可自定義比較器版本的演算法,在後文的**中列出時,將加註「(可自定義比較器)」。

STL演算法分類收藏

按是否修改容器中的內容和排序及相關操作,給標準庫中的演算法函式進行分類 非修改性序列操作 12個 迴圈 for each 對序列中的每個元素執行某操作 查詢 find 在序列中找出某個值的第一次出現的位置 find if 在序列中找出符合某謂詞的第乙個元素 find end 在序列中找出一子串行的最...

STL中的迭代器分類

五類迭代器如下 1 輸入迭代器 唯讀,一次傳遞 為輸入迭代器預定義實現只有istream iterator和istreambuf iterator,用於從乙個輸入流istream中讀取。乙個輸入迭代器僅能對它所選擇的每個元素進行一次解析,它們只能向前移動。乙個專門的建構函式定義了超越末尾的值。總是,...

STL 演算法細節

一 概論 1 質變演算法 會改變操作物件的值 2 非質變演算法 不改變操作物件的值 3 所有泛型演算法的前兩個引數都是一對迭代器 二 演算法的泛化過程 1 將乙個敘述完整的演算法轉化為程式 是任何訓練有素的程式設計師勝任愉快的工作。2 泛化是乙個漸進過程,從具體到抽象的過程。3 迭代器是乙個行為類似...