Files
dl/dl/base/dl_range_any.h
T
2026-09-16 14:07:40 +08:00

73 lines
1.1 KiB
C++

/**
* @file dl_range_any.h
* @brief 范围操作 任一满足条件
*
*
* @version 1.0
* @author lveyou
* @date 23-06-22
*
*/
#pragma once
#include "dl_concept.h"
//! 对容器任意元素的判断
namespace dl::Any
{
/**
* @brief 判断容器任意元素等于某值
* @param[in] container 操作的容器
* @param[in] v 要比较的值
*/
template<typename C, typename V>
bool Equal(const C& container, const V& v)
{
for (auto& iter : container)
{
if (iter == v)
return true;
}
return false;
}
template<typename C>
bool Zero(const C& container)
{
return Equal(container, 0);
}
/**
* @brief 判断容器任意元素满足条件
* @param[in] container 操作的容器
* @param[in] func 条件
*/
template<typename C, typename F>
bool Yes(const C& container, F func)
{
for (auto& iter : container)
{
if (func(iter))
return true;
}
return false;
}
/**
* @brief 判断容器任意元素小于某值
* @param[in] container 操作的容器
* @param[in] v 要比较的值
*/
template<typename C, typename V>
bool Less(const C& container, const V& v)
{
for (auto& iter : container)
{
if (iter < v)
return true;
}
return false;
}
}