std::any_of
std::any_of
std::any_of 是 C++11 引入的一个算法函数,位于头文件 <algorithm> 中。它用于检查给定范围内是否有任何元素满足特定条件。以下是关于 std::any_of 的详细解析:
- 
功能描述: - 检查范围 [first, last)内是否有任何元素满足由谓词(predicate)定义的条件。
- 如果有任意一个元素满足条件,则返回 true;否则返回false。
 
- 检查范围 
- 
函数签名: template <class InputIt, class UnaryPredicate> bool any_of(InputIt first, InputIt last, UnaryPredicate p);
- 
参数说明: - first, last:指定要检查的元素范围,使用输入迭代器表示。
- p:一个一元谓词(UnaryPredicate),接受一个元素作为参数并返回一个可转换为- bool的值。如果该值为- true,则认为该元素满足条件。
 
- 
返回值: - 如果在 [first, last)范围内有任何元素使得p(element)返回true,则返回true;否则返回false。
 
- 如果在 
- 
示例代码: #include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> numbers = {1, 2, 3, 4, 5}; // 检查是否有大于 3 的元素 bool result = std::any_of(numbers.begin(), numbers.end(), [](int n) { return n > 3; }); if (result) { std::cout << "存在大于 3 的元素" << std::endl; } else { std::cout << "不存在大于 3 的元素" << std::endl; } return 0; }
- 
注意事项: - std::any_of在找到第一个满足条件的元素后立即返回- true,不会继续检查剩余元素,因此效率较高。
- 如果范围为空(即 first == last),则直接返回false。
 
PS: std::all_of, std::none_of的用法类似。std::all_of是所有元素都满足条件,std::none_of是所有元素都不满足条件。
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号