c++11标准——泛型算法

来源:互联网 发布:辅助官网源码 编辑:程序博客网 时间:2024/06/11 12:10

正在看C++ primer 5,学习的同时,记录下学习体会。


(v表示容器)

实现在v中统计符合第三个参数条件的数量。有三种方法:

bool cmpstr(const string &s)

{

   return s.size() >=5;

}


1: 接受一个一元谓词。

auto count = count_if(v.begin(),v.end(),cmpstr);


2:接受一个lambda表达式。形如:[capture list] (parameter list) ->type { function body};//当函数体只有一个return 语句,可以省略类型

 auto count = count_if(v.being(), v.end(), [sz] (const string &s ) {  return s.size()>=5; } );


3:传递一个bind()函数//bind(obj,_1,_2....) 接受一个可调用对象,其他参数分别为该可调用对象的对应参数并返回一个可调用对象

   如 auto f = bind(a, b, c, _2 , _1);

    调用f(x,y)即 bind(a, b, c, y, x);

auto count = count_if(v.being(), v.end(), bind(cmpstr,_1));


0 0
原创粉丝点击