美文网首页
C++算法库——搜索(find, find_first_of,

C++算法库——搜索(find, find_first_of,

作者: 霜天渔火 | 来源:发表于2019-07-31 00:14 被阅读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

相关文章

网友评论

      本文标题:C++算法库——搜索(find, find_first_of,

      本文链接:https://www.haomeiwen.com/subject/crcarctx.html