首页 > 编程语言 > 详细

泛型算法(三)之测试序列的性质的算法

时间:2016-01-18 22:38:37      阅读:190      评论:0      收藏:0      [点我收藏+]

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    

 

泛型算法(三)之测试序列的性质的算法

原文:http://www.cnblogs.com/dongerlei/p/5140549.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!