在iterator對標識元素範圍內,查詢一對相鄰重複元素,找到則返回指向這對元素的第乙個元素的迭代器。否則返回past-the-end。
vector<
int> vecint;
vecint.
push_back(1
);vecint.
push_back(2
);vecint.
push_back(2
);vecint.
push_back(4
);vecint.
push_back(5
);vecint.
push_back(5
);vector<
int>
::iterator it =
adjacent_find
(vecint.
begin()
, vecint.
end())
;//*it == 2
在有序序列中查詢value,找到則返回true。注意:在無序序列中,不可使用。
set<
int> setint;
setint.
insert(3
);setint.
insert(1
);setint.
insert(7
);setint.
insert(5
);setint.
insert(9
);bool bfind =
binary_search
(setint.
begin()
,setint.
end(),
5);
利用等於操作符,把標誌範圍內的元素與輸入值比較,返回相等的個數。
vector<
int> vecint;
vecint.
push_back(1
);vecint.
push_back(2
);vecint.
push_back(2
);vecint.
push_back(4
);vecint.
push_back(2
);vecint.
push_back(5
);int icount =
count
(vecint.
begin()
,vecint.
end(),
2);//icount==3
假設vector vecinta,vecinta包含1,3,5,7,9元素
//先定義比較函式
bool
greaterthree
(int inum)
else
}
int icount =
count_if
(vecinta.
begin()
, vecinta.
end(
), greaterthree)
;//此時icount == 4
find: 利用底層元素的等於操作符,對指定範圍內的元素與輸入值進行比較。當匹配時,結束搜尋,返回該元素的迭代器。
equal_range: 返回一對iterator,第乙個表示lower_bound,第二個表示upper_bound。
vector<
int> vecint;
vecint.
push_back(1
);vecint.
push_back(3
);vecint.
push_back(5
);vecint.
push_back(7
);vecint.
push_back(9
);vector<
int>
::iterator it =
find
(vecint.
begin()
, vecint.
end(),
5);//*it == 5
find_if: 使用輸入的函式代替等於操作符執行find。返回被找到的元素的迭代器。
假設vector vecinta,vecinta包含1,3,5,3,9元素
vector<
int>
::it =
find_if
(vecint.
begin()
,vecint.
end(
),greaterthree)
;
此時 *it==3, *(it+1)==5, *(it+2)==3, *(it+3)==9 C 常用查詢演算法
find 查詢元素 find if 按條件查詢元素 adjacent find 查詢相鄰重複元素 binary search 二分查詢演算法 count 統計元素個數 count if 按條件統計元素個數 1 find 查詢指定元素,返回找到的指定元素的迭代器,找不到則返回結束迭代器 函式原型 fi...
c 常用查詢演算法
演算法簡介 find 查詢元素 find if 按條件查詢元素 adjacent find 查詢相鄰重複元素 binary search 二分查詢法 count 統計元素個數 count if 按條件統計元素個數 find 功能描述 查詢指定元素,找到返回指定元素的迭代器,找不到返回結束迭代器end...
常用的查詢演算法
1 mid low high 2 2 當k arr mid 時,low mid 1,並重複1 當k 當k arr mid 時,找到,結束。直到low high,還沒找到那麼說明該關鍵字不存在。核心 實現 演算法步驟 1 第一步確定查詢節點在那個表中的那一塊。2 第二步在確定的塊中找到該節點。1 雜湊...