一、简介
本节总结QtCreator中封装的容器算法接口,源码文件的路径src/libs/utils/algorithm.h。
算法接口包括:判断、查找、删除、统计、排序、转换、拆分、过滤
二、算法源码讲解
1、判断 Utils::anyOf、Utils::allOf
Utils::anyOf如果容器中有任一符合条件的元素,则返回true,否则返回false。
接口1:容器T中有任一符合predicate函数的元素,则返回true;
predicate函数格式:类S的成员函数,返回值类型为R。
源码如下:
template<typename T, typename R, typename S>
bool anyOf(const T &container, R (S::*predicate)() const)
{
return std::any_of(container.begin(), container.end(), std::mem_fn(predicate));
}
接口二:容器T中有符合F函数的成员,源码如下:
template<typename T, typename F>
bool anyOf(const T &container, F predicate)
{
return std::any_of(container.begin(), container.end(), predicate);
}