1第一个function案例

#include<iostream>

#include <boost/function.hpp>

using namespace std;

using namespace boost;

int main(int argc,char *argv[])

{

//其中atoi:表示的是将字符串转换成为数字,即:char * to int

//int表示的是函数的返回值,char *表示函数的参数类型

boost::function<int(char *)> fun = atoi;

//下面的运行结果是25

cout << fun("12") + fun("13") << endl;

//指向strlen函数。可以直接=,是因为strlen的参数类型也是char *类型的

fun = strlen;

//说明不不加'\0',下面的运行结果是5

cout << fun("adfaa") << endl;

cin.get();

}

运行结果:

2.function结合bind,案例如下:

#include<iostream>

#include <boost/function.hpp>

#include <boost/bind.hpp>

using namespace std;

using namespace boost;

int main(int argc, char *argv[])

{

boost::function<int(char *)> fun = atoi;

//下面的_1是一个占位符,表示fun要传入的参数

fun = boost::bind(strcmp, "034", _1);

//如果上面的"034"改成"234",运行结果是1

//此种情况运行的结果是:-1

cout << fun("123") << endl;

//下面的运行结果是0

cout << fun("034") << endl;

cin.get();

}

运行结果是:

3.function案例3

#include<iostream>

#include <boost/function.hpp>

#include <boost/bind.hpp>

using namespace std;

using namespace boost;

//通过下面的类管理worker类

class manager

{

public:

void allstart()

{

for (int i = 0; i < 10; i++)

{

//判断是否为空

if (workid)

{

//这时候直接调用i

workid(i);

}

}

}

//绑定调用,类似劫持,回调

void setcallback(boost::function<void(int)> newid)

{

workid = newid;

}

public:

//通过下面的指针绑定void run(int toid)这个函数

boost::function<void(int)> workid;

};

class worker

{

public:

void run(int toid)

{

id = toid;

cout << id << "工作" << endl;

}

public:

int id;

};

int main(int argc, char *argv[])

{

manager m;

worker w;

//类的成员函数需要对象来调用,绑定一个默认的对象

//在调用之前要进行一个绑定,绑定到对象之上

m.setcallback(boost::bind(&worker::run, &w, _1));

m.allstart();

cin.get();

return 0;

}

运行结果:

3.Boost之function相关推荐

  1. boost::phoenix::function相关的测试程序

    boost::phoenix::function相关的测试程序 实现功能 C++实现代码 实现功能 boost::phoenix::function相关的测试程序 C++实现代码 #include & ...

  2. boost::phoenix::function用法的测试程序

    boost::phoenix::function用法的测试程序 实现功能 C++实现代码 实现功能 boost::phoenix::function用法的测试程序 C++实现代码 #include & ...

  3. Using Apache Solr‘s boost query function with Spring in Java

    Using Apache Solr's boost query function with Spring in Java

  4. 传递function_boost库function与bind

    boost库function与bind 一.function 头文件:boost/function.hpp function更合适的说法我觉得是一种回调函数的表现方式. boost::function ...

  5. boost::mp11::mp_similar相关用法的测试程序

    boost::mp11::mp_similar相关用法的测试程序 实现功能 C++实现代码 实现功能 boost::mp11::mp_similar相关用法的测试程序 C++实现代码 #include ...

  6. boost::mp11::mp_plus相关用法的测试程序

    boost::mp11::mp_plus相关用法的测试程序 实现功能 C++实现代码 实现功能 boost::mp11::mp_plus相关用法的测试程序 C++实现代码 #include <b ...

  7. boost::mp11::mp_or相关用法的测试程序

    boost::mp11::mp_or相关用法的测试程序 实现功能 C++实现代码 实现功能 boost::mp11::mp_or相关用法的测试程序 C++实现代码 #include <boost ...

  8. boost::mp11::mp_and相关用法的测试程序

    boost::mp11::mp_and相关用法的测试程序 实现功能 C++实现代码 实现功能 boost::mp11::mp_and相关用法的测试程序 C++实现代码 #include <boo ...

  9. Boost:使用行列式函数和transform()算法计算许多4x4矩阵的行列式

    Boost:使用行列式函数和transform()算法计算许多4x4矩阵的行列式 实现功能 C++实现代码 实现功能 使用行列式函数和transform()算法计算许多4x4矩阵的行列式 C++实现代 ...

最新文章

  1. COM组件转换成.NET组件[转]
  2. android将被代替的控件,Android 控件被忽略的属性
  3. Spark集群基于Zookeeper的HA搭建部署笔记(转)
  4. Visio修改默认字体样式
  5. Python Django 多表插入之重写save()方法代码示例
  6. 基于mui框架读取nfc数据_基于NFC的数据采集软件系统的设计与实现
  7. 大数据WEB阶段(十五)JavaEE三大核心技术之过滤器
  8. HDOJ杭电2044
  9. Java为什么能跨平台运行
  10. mysql 大数据量插入遇到瓶颈 可行性方案探究
  11. go语言的安装、环境变量配置及简单使用
  12. 将图片的二进制字节字符串在HTML页面以图片形式输出
  13. 【深度优先搜索】网格类问题:牛客网:机器人的运动范围
  14. 软件 PRE、RC、beta、RTM、CTP等版本号的基本区别
  15. CSDN 勤学会 —— 和优秀的人一起学习进步
  16. 微信好友保存在服务器,微信好友数据备份好,封号也不怕!
  17. 数理知识(1):虚无假设、显著性检验、统计推断、P值法
  18. 视频服务器是什么?要如何搭建?
  19. IOS和安卓展示时间兼容问题
  20. 元宇宙系列之AI虚拟人:“人”潮汹涌 探路未来

热门文章

  1. 一文带你了解隐马尔科夫模型
  2. MATLAB机器学习系列-8 极限学习机(Extreme Learning Machine, ELM)原理及其代码实现
  3. 使用 std::shared_ptr 和 std::unique_ptr 测试 boost/pointer_cast.hpp
  4. boost::phoenix::ref相关的测试程序
  5. boost::mpl模块实现sizeof相关的测试程序
  6. boost::mp11::mp_partition_q相关用法的测试程序
  7. boost::hana::extract用法的测试程序
  8. boost::gil::threshold_adaptive用法的测试程序
  9. boost::contract模块实现虚拟可选结果的测试程序
  10. Boost:字符串的RLE压缩的测试程序