zoukankan      html  css  js  c++  java
  • 泛型算法(二)之测试序列的性质的算法

    1、all_of(InputIterator first, InputIterator last, UnaryPredicate pred) : C11算法。如果序列所有元素均满足谓词pred,则返回true

    比如,判断一个序列中的元素是不是都小于0:

       std::vector<int> c;
        //添加元素{-10,-9,-8,-7,-6,-5,-4,-3,-2,-1}
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i - 10);
        }
        //返回true
        bool result = std::all_of(c.begin(), c.end(), [](int element){
            return element < 0;
        });
    
        std::cout << (int)result;
      //打印结果:1

    2、any_of(InputIterator first, InputIterator last, UnaryPredicate pred) : C11算法。如果序列存在元素满足谓词pred,则返回true

    std::vector<int> c;
        //添加元素{-10,-9,-8,-7,-6,-5,-4,-3,-2,-1}
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i - 10);
        }
        //因为存在 -10<-9 所以返回true
        bool result = std::any_of(c.begin(), c.end(), [](int element){
            return element < -9;
        });
    
        std::cout << (int)result; 
      //打印结果:1

    3、none_of(InputIterator first, InputIterator last, UnaryPredicate pred) : C11算法。如果序列中所有元素不满足谓词pred,则返回true

            std::vector<int> c;
        //添加元素{-10,-9,-8,-7,-6,-5,-4,-3,-2,-1}
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i - 10);
        }
        //因为不存在大于0的元素,所以返回true
        bool result = std::none_of(c.begin(), c.end(), [](int element){
            return element > 0;
        });
    
        std::cout << (int)result;
        //打印结果:1    
  • 相关阅读:
    获取其他进程中StatusBar的文本
    TStringGrid多选的复制与拷贝
    常用数据结构
    数据结构及算法
    时间复杂度和空间复杂度详解
    算法的时间复杂度和空间复杂度
    新增并管理媒体资源
    Node.js与MongoDB的基本连接示例
    Web API 2:Action的返回类型
    快递查询组件
  • 原文地址:https://www.cnblogs.com/dongerlei/p/5140549.html
Copyright © 2011-2022 走看看