C++算法库——搜索(find, find_first_of,
2019-07-31 本文已影响0人
霜天渔火
- 头文件
<algorithm>
find, find_if, find_if_not:寻找满足条件的首个元素
template< class InputIt, class T >
InputIt find( InputIt first, InputIt last, const T& value );
template< class InputIt, class UnaryPredicate >
InputIt find_if( InputIt first, InputIt last, UnaryPredicate p );
template< class InputIt, class UnaryPredicate >
InputIt find_if_not( InputIt first, InputIt last, UnaryPredicate q );
-
返回迭代器,若没找到则返回
last
find_end:寻找指定序列的最后一次出现
- 用
operator==
比较元素:
template< class ForwardIt1, class ForwardIt2 >
ForwardIt1 find_end( ForwardIt1 first, ForwardIt1 last, ForwardIt2 s_first, ForwardIt2 s_last );
- 用二元谓词
p
比较元素:
template< class ForwardIt1, class ForwardIt2, class BinaryPredicate >
ForwardIt1 find_end( ForwardIt1 first, ForwardIt1 last, ForwardIt2 s_first, ForwardIt2 s_last, BinaryPredicate p );
-
返回序列开端的迭代器,若序列为空或没找到则返回
last
find_first_of:在范围[first, last)
中寻找属于[s_first, s_last)
的首个元素
- 用
operator==
比较元素:
template< class InputIt, class ForwardIt >
InputIt find_first_of( InputIt first, InputIt last, ForwardIt s_first, ForwardIt s_last );
- 用二元谓词
p
比较元素:
template< class InputIt, class ForwardIt, class BinaryPredicate >
InputIt find_first_of( InputIt first, InputIt last, ForwardIt s_first, ForwardIt s_last, BinaryPredicate p );
-
返回迭代器,若没找到则返回
last
adjacent_find:寻找首对连续的相同(或满足某种关系的)元素
- 用
operator==
比较元素:
template< class ForwardIt >
ForwardIt adjacent_find( ForwardIt first, ForwardIt last );
- 用二元谓词
p
比较元素:
template< class ForwardIt, class BinaryPredicate>
ForwardIt adjacent_find( ForwardIt first, ForwardIt last, BinaryPredicate p )
-
返回第一个元素的迭代器,若没找到则返回
last
search:搜索子序列
template< class ForwardIt1, class ForwardIt2 >
ForwardIt1 search( ForwardIt1 first, ForwardIt1 last, ForwardIt2 s_first, ForwardIt2 s_last );
template< class ForwardIt1, class ForwardIt2, class BinaryPredicate >
ForwardIt1 search( ForwardIt1 first, ForwardIt1 last, ForwardIt2 s_first, ForwardIt2 s_last, BinaryPredicate p );
-
返回子序列开端的迭代器,若没找到则返回
last
- 若子序列为空,则返回
first
search_n:搜索满足条件的多个连续元素
template< class ForwardIt, class Size, class T >
ForwardIt search_n( ForwardIt first, ForwardIt last, Size count, const T& value );
template< class ForwardIt, class Size, class T, class BinaryPredicate >
ForwardIt search_n( ForwardIt first, ForwardIt last, Size count, const T& value, BinaryPredicate p );
-
返回子序列开端的迭代器,若没找到则返回
last
- 若
count
为零或负,则返回first