美文网首页
C++算法库——判断、计数、比较(all_of, count,

C++算法库——判断、计数、比较(all_of, count,

作者: 霜天渔火 | 来源:发表于2019-07-27 19:56 被阅读0次
  • 头文件<algorithm>

all_of, any_of, none_of:谓词检查

  • 输入范围,返回truefalse
template< class InputIt, class UnaryPredicate >
bool all_of( InputIt first, InputIt last, UnaryPredicate p );
  • 示例:
bool result = all_of( v.begin(), v.end(), [](int i){ return i % 2 == 0; } )

count, count_if:计数

  • 计数等于value的元素:
template< class InputIt, class T >
typename iterator_traits<InputIt>::difference_type
    count( InputIt first, InputIt last, const T &value );
  • 计数谓词p对其返回true的元素
template< class InputIt, class UnaryPredicate >
typename iterator_traits<InputIt>::difference_type
    count_if( InputIt first, InputIt last, UnaryPredicate p );

mismatch:寻找两个范围出现不同的首个位置

template< class InputIt1, class InputIt2 >
std::pair<InputIt1,InputIt2>
    mismatch( InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2 );
template< class InputIt1, class InputIt2, class BinaryPredicate >
std::pair<InputIt1,InputIt2>
    mismatch( InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, BinaryPredicate p );
  • 返回迭代器的pair
  • 如果没有指定last2,则默认两个序列等长

equal:判断两个范围是否相等

template< class InputIt1, class InputIt2 >
bool equal( InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2 );
template< class InputIt1, class InputIt2, class BinaryPredicate >
bool equal( InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, BinaryPredicate p );
  • 如果没有指定last2,则默认两个序列等长

lexicographical_compare:判断第一个范围是否按字典序小于第二个范围

template< class InputIt1, class InputIt2 >
bool lexicographical_compare( InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2 );
template< class InputIt1, class InputIt2, class Compare >
bool lexicographical_compare( InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, Compare comp );

相关文章

网友评论

      本文标题:C++算法库——判断、计数、比较(all_of, count,

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