主要是對find , find_first_of , find_end , find_if , find_if_not
這五函式做個總結:
#include
#include
#include
#include
#include
using
namespace std;
bool
isold
(int a)
bool
issmall
(int a,
int b)
bool
isequal
(int a,
int b)
intmain()
; vector<
int>
::iterator iter;
vector<
int> jvec =
; vector<
int> kvec =;
iter =
find
(ivec.
begin()
, ivec.
end(),
5);//1
iter =
find_if
(ivec.
begin()
, ivec.
end(
), isold)
;//2
iter =
find_if_not
(ivec.
begin()
, ivec.
end(
), isold)
;//3
iter =
find_first_of
(ivec.
begin()
, ivec.
end(
), kvec.
begin()
, kvec.
end())
;//4
iter =
find_first_of
(ivec.
begin()
, ivec.
end(
), kvec.
begin()
, kvec.
end(
), isequal)
;//5
iter =
find_end
(ivec.
begin()
, ivec.
end(
), jvec.
begin()
,jvec.
end())
;//6
iter =
find_end
(ivec.
begin()
, ivec.
end(
), kvec.
begin()
, kvec.
end(
), issmall)
;//7
}
首先,find函式就是從乙個迭代器範圍中查詢第乙個匹配的單個元素,如1,在ivec中查詢第一次匹配5的迭代器,返回指向第乙個5的迭代器,詳見:
find_if是從頭開始,匹配自定義函式,這個函式接受乙個引數(來自前面的序列,順序相同),返回bool值,來自定義一些判斷,如2,我新增了乙個判斷是否為偶數的函式,在ivec中查詢第乙個為偶數的迭代器,返回指向第乙個2的迭代器。
詳見:find_if_not則是從頭開始查詢第乙個不匹配自定義函式,和find_if相反,如3,查詢第乙個不為偶數的迭代器,返回指向第乙個1的迭代器。
詳見:find_first_of函式是從乙個迭代器範圍中查詢第乙個匹配的迭代器範圍,有兩種用法,一是直接比較兩個迭代器範圍是否相等,如4,在ivec中查詢kvec,返回指向第乙個3的迭代器;還有一種用法是再加乙個自定義比較函式,這個函式接受兩個引數(兩個序列各乙個,順序相同),返回bool值,來自定義一些判斷,比如5,加了乙個比較是否相等的函式,最後返回的迭代器指向第乙個3。
詳見:find_end的是從末尾開始查詢,也是在乙個迭代器範圍中查詢另外乙個迭代器範圍,方法也同find_first_of一樣有兩種,一種是直接匹配,如6;一種是新增自定義比較函式,如7,我新增了乙個比小的函式,返回的迭代器指向最後乙個2。
詳見:其間區別要細細體會,在不同場景使用,find,find_if,find_if_not都是在乙個迭代器範圍中查詢乙個元素,而find_first_of,find_end則是在乙個迭代器範圍中查詢另乙個迭代器範圍,並且都有新增自定義函式的用法,不同之處在於乙個正序乙個逆序查詢。可以粗略的看出,以find -> find_if , find_if_not -> find_first_of ,find_end
功能逐步公升級。
C Algorithm中的函式簡介
algorithm意為 演算法 是c 的標準模版庫 stl 中最重要的標頭檔案之一,提供了大量基於迭代器的非成員模版函式。本文簡單介紹find,swap,sort,for each這幾個函式的功能及使用方法。給定乙個vector容器 vectornums find find nums.begin n...
C algorithm庫中的常用演算法示例
vector int v 查詢相鄰元素的第乙個元素 adjacent find v.begin v.end 折半查詢 binary search v.begin v.end 7 返回指定元素的個數 count v.begin v.end 6 返回指定條件的個數 lambda 初使用 count if...
C algorithm函式簡介 詳細
algorithm意為 演演算法 是c 的標準模版庫 stl 中最重要的標頭檔案之一,提供了大量基於迭代器的非成員模版函式,庫中的演算法主要分為4類 迴圈 對序列中的每個元素執行某操作 for each 查詢 在序列中找出某個值的第一次出現的位置 find 利用底層元素的等於操作符,對範圍內的元素與...