常用C++函数罗列及详解(algorithm篇)
一、非修改性序列操作 Non-modifying sequence operations:
1) bool all_of(序列.begin(), 序列.end(), 一元检测函数) C++ 11
函数功能:*Test condition on all elements in range *
用来检测指定范围内的所有值是否符合某个条件,检测函数从序列开始逐个接收值,最终返回bool;如果范围内所有值符合条件返回true,如果范围为空或者不符合,则返回false。
2) bool any_of(序列.begin(), 序列.end(), 一元检测函数) C++ 11
函数功能:Test if any element in range fulfills condition
用来检测指定范围内是否存在符合某个条件的值,检测函数从序列开始逐个接收值,最终返回bool;如果范围内至少存在一个值符合条件返回true,如果范围为空或者不符合,则返回false。
题外话:这里的一元函数,简单的话可以直接写在形参里面,从官网拔下来的例子:
any_of(foo.begin(), foo.end(), [](int i){return i<0;})
3)bool none_of(序列.begin(), 序列.end(), 一元检测函数) C++ 11
函数功能:Test if no elements fulfill condition
用来检测指定范围内所有是否都不符合某个条件,检测函数从序列开始逐个接收值,最终返回bool;如果范围为空或者范围内存在一个值符合条件返回false,如果全不符合,则返回true。
参考链接:
http://www.cplusplus.com/reference/algorithm/none_of/
4)int count(序列.begin(), 序列.end(), const T& val)
函数功能:Count appearances of value in range
用来计算指定范围内某个值出现的次数,遍历整个范围后,返回val出现的次数(singed intergral 类型)。
相关例题:
剑指offer - 数字在排序数组中出现的次数;数组中只出现一次的数字;数组中重复的数字;和为S的两个数字;字符流中第一个不重复的字符
参考链接:
http://www.cplusplus.com/reference/algorithm/count/
未完待续