STL(二十一)非變易演算法
非變易演算法是一組不破壞運算元據的模板函式,用來對序列資料進行逐個處理、元素查詢、子序列搜尋、統計和匹配。作為演算法函式引數的迭代器,一般為Input Iterator輸入迭代器,具有“++”迭代和“*”訪問操作。通過迭代器的元素遍歷,可對迭代器區間所界定的元素進行操作。因此,非變易演算法具有極為廣泛的適用性,基本上可應用於各種容器。
一、逐個容器元素for_each
#include <stl_algo.h>
template <class InputIter, class Function>
Function for_each(InputIter first, InputIter last, Function f) {
for (; first != last; ++first) //
f(*first);
return f;
}
二、查詢容器元素find
template <class InputIter, class T>
inline InputIter find(InputIter first, InputIter last, const T& val, input_iterator_tag) {
while (first != last && !(*first == val))
++first;
return first;
}
三、條件查詢容器元素find_if
四、鄰近查詢容器元素adjacent_find
五、範圍查詢容器元素find_first_of
六、統計等於某值的容器元素個數count
七、條件統計容器元素個數count_if
八、元素不匹配查詢mismatch
九、元素相等判斷equal
十、子序列搜尋search
search演算法函式在一個序列中搜尋與另一序列匹配的子序列。
十一、重複元素子序列搜尋search_n
十二、最後一個子序列搜尋find_end
相關文章
- STL(二十二)變易演算法演算法
- 二十一、氣泡排序演算法——JAVA實現(遞迴與非遞迴)排序演算法Java遞迴
- STL 演算法集合演算法
- 常數變易法求解非齊次線性微分方程
- STL::演算法::常見演算法演算法
- STL(二十三)排序演算法排序演算法
- C++_STL—演算法Algorithm篇C++演算法Go
- C++ STL演算法總結C++演算法
- 常用的 STL 查詢演算法演算法
- 非易失性Flash詳解
- STL(二十四)數值演算法演算法
- 非易失性MRAM讀寫操作
- 非易失性儲存器EEPROM
- C++_STL—較為常用的演算法C++演算法
- 非易失性NV-SRAM簡介
- 非易失性儲存器平衡方法
- 如何向非技術人員解釋“稀疏傅立葉變換”演算法?演算法
- 非易失性WAL BUFFER解析:flush WAL改造
- 非易失性MRAM及其單元結構
- 非易失性NV-SRAM的應用
- 第二十一節-雜湊演算法(上)演算法
- Effective STL Item 43:優先使用STL泛型演算法以取代手寫迴圈 (轉)泛型演算法
- 非對稱演算法----RSA演算法演算法
- 靜態變數和非靜態變數變數
- 【演算法學習】STL庫 大小根堆的用法演算法
- C++進階:STL演算法9--邊界C++演算法
- C++基礎::非型別模板引數在STL中的應用C++型別
- 非對稱加密演算法-RSA演算法加密演算法
- 非易失性FRAM中的預充電操作
- STL
- 進階篇_STL中通用演算法處理資料演算法
- 漢諾塔非遞迴演算法遞迴演算法
- 幾種非易失性儲存器的比較
- 非易失性儲存器MRAM技術介紹
- 《STL原始碼剖析》 -- stl_algo.h原始碼Go
- 《STL原始碼剖析》-- stl_algobase.h原始碼Go
- 《STL原始碼剖析》-- stl_hashtable.h原始碼
- 《STL原始碼剖析》-- stl_multimap.h原始碼