Count_if算法,类似find_if,此函数接受一对迭代器,表示一个输入范围,还接受一个谓词,会对输入范围中的每个元素执行。Count_if返回一个计数值,表示谓词有多少次为真。
    使用bind函数必须包含头文件functional且必须包含命名空间placeholders,该命名空间也包含于functional头文件中,所以使用此命名空间也必须包含此头文件, 如:

using namespace (std::)placeholders;
或 using (std::)placeholders::_1; //名字_n都包含于命名空间placeholders
vector<string>::iterator iter = find_if(words.begin(), words.end(),
bind(check_size, _1, sz));

bind的参数个数:

bind是可变参数的,他接受的第一个参数是一个可调用对象,级实际工作函数A,返回供算法使用的新的可调用对象B。若A接受x个参数,则bind的参数个数应该是x+1,即除了A外,其他参数应一一对应A所接受的参数。这些参数中有一部分来自B(_n),另外一些来自于所处函数的局部变量。
下面是一个使用bind的例子

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <functional> using namespace std;
using namespace placeholders;
ostream &print(ostream &os, const string &s, char c);
//using placeholders::_1; inline void output(vector<string> &words)
{
for_each(words.begin(), words.end(), bind(print, ref(cout), _1, ' '));
cout << endl;
}
inline bool isShort(const string &a, const string &b)
{
return a.size() < b.size();
} ostream &print(ostream &os, const string &s, char c)
{
return os << s << c;
}
inline bool check_size(const string &s, string::size_type sz)
{
return s.size() >= sz;
}
void biggies(vector<string> &words, vector<string>::size_type sz)
{
sort(words.begin(), words.end());
output(words); auto it = unique(words.begin(), words.end());
output(words); words.erase(it, words.end());
output(words); stable_sort(words.begin(), words.end(),
bind(isShort, _1, _2));
output(words); vector<string>::iterator iter = stable_partition(words.begin(), words.end(),
bind(check_size, _1, sz));
output(words); int count = iter - words.begin();
cout << "There is " << count << (count > 1 ? " words" : " word")
<< " is 5 or longer." << endl; for_each(words.begin(), iter, [](const string &s) { cout << s << " "; });
cout << endl;
}
int main()
{
vector<string> words{ "the", "quick", "red", "fox", "jumps",
"over", "the", "slow", "red", "turtle" };
biggies(words, 5);
return 0;
}

10.3.4参数绑定 bind的更多相关文章

  1. thinkphp 参数绑定

    参数绑定是指绑定一个参数到预处理的SQL语句中的对应命名占位符或问号占位符指定的变量,并且可以提高SQL处理的效率,需要数据库驱动类的支持,目前只有PDO和Sqlsrv驱动支持参数绑定功能. 富瑞华大 ...

  2. JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别

    1. 学习计划   第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) Sp ...

  3. SpringMVC介绍及参数绑定

    本节内容: SpringMVC介绍 入门程序 SpringMVC架构 SpringMVC整合MyBatis 参数绑定 SpringMVC和Struts2的区别 一.SpringMVC介绍 1. 什么是 ...

  4. springMVC第一天——入门、整合与参数绑定

    大纲摘要: 1.Springmvc介绍 2.入门程序 3.Springmvc架构讲解 a) 框架结构 b) 组件说明 4.Springmvc整合mybatis 5.参数绑定 乱码问题解决 a) Spr ...

  5. SpringMVC的参数绑定

    一.@RequestMapping注解说明   通过@RequestMapping注解可以定义不同的处理器映射规则. URL路径映射 @RequestMapping(value="/item ...

  6. Python中函数参数类型和参数绑定

    参数类型 Python函数的参数类型一共有五种,分别是: POSITIONAL_OR_KEYWORD(位置参数或关键字参数) VAR_POSITIONAL(可变参数) KEYWORD_ONLY(关键字 ...

  7. SpringMVC入门 -- 参数绑定

    一.REST与RESTful 1.简介 (1)REST(Representational State Transfer):表现层状态转移,一种软件架构风格,不是标准.REST描述的是在网络中clien ...

  8. 【工作篇】再次熟悉 SpringMVC 参数绑定

    前言 主要现在项目中使用的参数绑定五花八门的,搞得很头大,例如有些用字符串接收日期,用字符串接受数组等等,完全没有利用好 SpringMVC 的优势,这里自己也总结一下,免得到时又要百度谷歌查找. 以 ...

  9. Spring MVC初始化参数绑定

    初始化参数绑定与类型转换很类似,初始化绑定时,主要是参数类型 ---单日期 在处理器类中配置绑定方法  使用@InitBinder注解 在这里首先注册一个用户编辑器 参数一为目标类型   proper ...

随机推荐

  1. git 流程

    1.git clone 拉取代码2.git checkout -b '分支名称' 命令意思: 创建并切换到当前新建的本地分支. 查看并创建分支,先远端,后本地.3.将本地分支和远端分之关联 git b ...

  2. CSS语法、选择器、继承、层叠

    行内样式(内联样式) <h1 style="color:red;font-size:20px;">css行内样式</h1> 内部样式表(嵌入样式) < ...

  3. 项目启动时报错:java.io.EOFException

    解决方案 删除Tomcat里面的work\Catalina\localhost下的项目文件内容即可解决 问题原因 原因是由于项目测试中class文件或者其它文件更新过频繁

  4. Uva1660 (点联通度、边联通度问题)

    题意: 给定一个n(n<=50)的无向图,问最小删去几个点,可以使得这个图不连通 解法:   1.  基本概念 (1)一个具有 N 个顶点的图,在去掉任意 K-1 个顶点后 (1<=K&l ...

  5. C#中调用Windows系统服务exe程序的工具类与重启服务的流程

    场景 使用C#编写的Windows服务程序,在Winform中进行调用. 常用工具类方法检测服务是否存在或者安装,获取服务状态,启动服务,停止服务的方法. 以在Winform中重启服务为例. 注: 博 ...

  6. Android数据存储之共享参数SharedPreferences

    SharedPreferences是Android的一个轻量级存储工具,采用的存储结构是Key-Value的键值对方式,类似于Java的Properties类,二者都是把Key-Value的键值对保存 ...

  7. MVC开发之Razor的使用

    一.运用布局和视图起始文件 布局的使用,可以简化视图,允许用户创建能够运用于多个视图的通用HTML,并使得维护更加容易.下面是一个简单的例子: 域模型类: public class Product { ...

  8. Spring IoC Container源码分析(二)-bean初始化流程

    准备 Person实例 @Data public class Person { private String name; private int age; } xml bean配置 <?xml ...

  9. python ide 使用

    pycharm jupyter 官方文档 使用 部署到服务器 参考 配置域名(反向代理) *.conf文件 server { listen ; server_name ju.iii.top; inde ...

  10. 51nod1326 遥远的旅途(spfa+dp)

    题意: 给出一个无向图,问从1到n是否存在一条长度为L的路径. n,m<=50,1<=路径长度<=10000,L<=10^18 思路: 改变一下思路,我们发现,假设从起点1走到 ...