当前位置:  编程技术>c/c++/嵌入式

c++11新增的便利算法实例分析

    来源: 互联网  发布时间:2014-10-28

    本文导语:  C++是一门应用非常广泛的程序设计语言,而c++11则新增加了一些便利的算法,这些新增的算法使我们的代码写起来更简洁方便,本文列举一些常用的新增算法,算是做个总结分析,更多的新增算法读者可以参考:http://en.cppreferen...

C++是一门应用非常广泛的程序设计语言,而c++11则新增加了一些便利的算法,这些新增的算法使我们的代码写起来更简洁方便,本文列举一些常用的新增算法,算是做个总结分析,更多的新增算法读者可以参考:http://en.cppreference.com/w/cpp/algorithm。

算法库新增了三个用于判断的算法all_of、any_of和none_of,定义如下:

template< class InputIt, class UnaryPredicate >
bool all_of( InputIt first, InputIt last, UnaryPredicate p );

template< class InputIt, class UnaryPredicate >
bool any_of( InputIt first, InputIt last, UnaryPredicate p );

template< class InputIt, class UnaryPredicate >
bool none_of( InputIt first, InputIt last, UnaryPredicate p );

① all_of:检查区间[first, last)中是否所有的元素都满足一元判断式p,所有的元素都满足条件返回true,否则返回false。
② any_of:检查区间[first, last)中是否至少有一个元素都满足一元判断式p,只要有一个元素满足条件就返回true,否则返回true。
③ none_of:检查区间[first, last)中是否所有的元素都不满足一元判断式p,所有的元素都不满足条件返回true,否则返回false。

下面是这几个算法的示例:

#include 
#include 
#include 
using namespace std;
int main()
{
    vector v = { 1, 3, 5, 7, 9 };
   auto isEven = [](int i){return i % 2 != 0;
    bool isallOdd = std::all_of(v.begin(), v.end(), isEven);
    if (isallOdd)
       cout 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • LINUX下怎么给新增的硬盘做RAID
  • 一个统计表每天的新增行数及新增存储空间的功能
  • jquery1.10给新增元素绑定事件的方法
  • 在linux中有/usr分区,现在新增一个硬盘,如何将这个硬盘空间分给/usr
  • linux下新增用户上不了网
  • SVN命令行怎么递归把文件夹里面所有的新增文件签入?
  • 新增一个驱动后,内核不启动
  • 如何在/usr/share/local目录下新增一个语言?
  • 如何把一个目录设成ROOT都不能访问,只有一个新增的用户名可以访问?
  • 问题:在linux系统中,怎么使用shell脚本,在文件的第三行和第四行之间新增一行(插入一段字符,或者一个变量的值)?
  • 在 tab widget中,点击add按钮新增数据后,如何将反选光标定位在该选项上?????
  • 请教:我在原来的机器上新增一块硬盘作为数据盘
  • OpenLDAP新增记录时宕机问题
  • php操作MongoDB基础教程(连接、新增、修改、删除、查询)
  • 请教一个问题,如何编写shell脚本把一个目录下每天新增的所有文件定时传到ftp上面?
  • 100分求 如何为jTable及jList新增一行?
  • mysql 新增、删除用户和权限分配
  • sql数据库新增链接服务器
  • PHP获取MySql新增记录ID值的3种方法
  • 在Framework 4.0中:找出新增的方法与新增的类(一)




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3