C++算法库——判断、计数、比较(all_of, count,
2019-07-27 本文已影响0人
霜天渔火
- 头文件
<algorithm>
all_of, any_of, none_of:谓词检查
- 输入范围,返回
true或false
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 );