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    
  • 相关阅读:
    1015
    1016
    1014
    1002
    1010
    1006
    动态规划1001
    动态规划1002
    使用EF框架调用带有输出参数(output)的存储过程
    工程地质相关知识
  • 原文地址:https://www.cnblogs.com/dongerlei/p/5140549.html
Copyright © 2011-2022 走看看