当前位置: 首页 > news >正文

打开国外网站很慢网站建设汇卓

打开国外网站很慢,网站建设汇卓,王烨重生,做网站用什么开发工具C11中有一个重要的概念#xff0c;叫可调用对象#xff0c; 可调用对象用途广泛#xff0c;比如作为线程的执行对象#xff0c;或者在使用一些基于范围的模版函数时#xff08; sort()、all_of()、find_if()#xff09;#xff0c;常常需要我们传入一个可调用对象…C11中有一个重要的概念叫可调用对象 可调用对象用途广泛比如作为线程的执行对象或者在使用一些基于范围的模版函数时 sort()、all_of()、find_if()常常需要我们传入一个可调用对象以指明我们需要对范围中的每个元素进行怎样的处理。 总的来说可调用对象有以下几种 普通函数 函数指针 仿函数即重载了operator()运算符的类对象 匿名函数即Lambda表达式 std::function 其中前面三种用法比较简单放在一类中讲 普通函数、函数指针、仿函数 #include iostream #include thread #include functional #include algorithm #include vector//仿函数 struct functor{int operator()(const int a, const int b) const{return a b;} }; //普通函数 bool normal_func_cmp(const int a, const int b) {return a b; // 从小到大排列 }//函数指针 typedef bool (*p_func)(const int a, const int b); int main(int argc, const char * argv[]) {// insert code here...std::vectorint v1 {1, 5, 7, 4, 6, 2, 6};std::vectorint v2 v1;std::vectorint v3 v1;//使用普通函数排序sort(v1.begin(), v1.end(), normal_func_cmp);for(auto num : v1) {std::cout num ;}std::cout std::endl;//使用仿函数排序sort(v2.begin(), v2.end(), functor());for(auto num : v2) {std::cout num ;}std::cout std::endl;//使用函数指针排序p_func p normal_func_cmp;sort(v3.begin(), v3.end(), p);for(auto num : v3) {std::cout num ;}return 0; }匿名函数 Lambda 表达式 定义 [captures] (params) mutable - return_type { statments;} [captures]为捕获列表用于捕获外层变量。[]表示捕获当前范围内所有局部变量。 [val]表示以传值方式捕捉变量val []表示以传值方式捕捉当前作用域中的变量包括this指针。 [val]表示以引用方式传递捕捉变量val。 []表示以引用方式传递捕捉当前作用域中的所有变量包括this指针。 [this]表示以传值方式捕捉当前的this指针。 params参数列表。与普通函数参数列表使用相同。如果不需要传递参数可以连同()一起省略。 mutable : 默认情况下lambda函数总是一个const函数捕捉的传值参数具有常性mutable可以取消常性。使用mutable修饰符时参数列表不能省略即使参数为空。 -return_type : 返回值如果没有返回类型则可以省略这部分。想知道为什么返回类型可以这么表示这涉及到c11的另一特性参见自动类型推导。 statments: {函数体}在函数体内除了可以使用参数外还能使用捕捉的变量。 举例 void lambda_test() {/* 最简单的lambda表达式 */[]{};//值传递int a 1;int b 2;auto add_lambda_func_val [] () mutable{ a a b;};add_lambda_func_val();//由于传递的是当前局部变量的拷贝所以a不会被修改std::cout a b std::endl;//引用传递auto add_lambda_func_ref [] (){ a a b;};add_lambda_func_ref();//由于传递的是当前局部变量的引用所以a被修改std::cout a b std::endl;//可以对单个变量进行捕捉auto add_lambda_func_ref2 [a,b] () mutable { a a b; b a b; };add_lambda_func_ref2();std::cout a b std::endl; } std::function std::function在C11后加入标准可以用它来描述C中所有可调用实体它是是可调用对象的包装器声明如下 普通声明 #include functional // 声明一个返回值为int参数为两个int的可调用对象类型 std::functionint(int, int) Func;其他函数实体转化为std::function std::function 的强大之处在于它能兼容所有callable实体 //所有callable实体都能给function接收这里以lambda为例auto lambda [](int a, int b)-int {return a b;};test_functionnal lambda; ... //成员函数和静态函数比较特殊 //成员函数需要传入对象指针 //std::placeholders::_1是占位符代表需要接收一个参数如果要接收多个可以使用std::placeholders::_2、std::placeholders::_3...MyClass object;test_functionnal std::bind(MyClass::sum, object, std::placeholders::_1, std::placeholders::_2);std::cout class member function : test_functionnal(1, 2) std::endl;
http://www.pierceye.com/news/5382/

相关文章:

  • 专业建站lhznkj推广软件赚钱违法吗
  • 网站服务器解决方案网站官方认证怎么做
  • 注册公司网站流程潍坊建设企业网站
  • 安徽省质量提升工程建设网站h5设计制作是什么意思
  • 重庆企业网站建设价格wordpress 后台修改模板
  • 网站免费进入窗口软件有哪些西安小公司网站建设
  • 扶风高端企业网站建设特色化示范性软件学院
  • 衡水电商网站建设价格有什么做服装的网站好
  • 手机访问不了自己做的网站网站建设分几种
  • 小公司做网站推广好不好wordpress页面生成器
  • 同一个网站买多家cdn怎么网络推广自己业务
  • 网站建设平台设备长沙专业网站设计平台
  • 网站开发是怎么回事单位网站备案
  • 怎么做微信上的网站吗wordpress设置插件下载
  • 东莞网站设计评价临沂制作网站企业
  • 银川做网站最好的公司自助建站系
  • 公司网站功能拉卡拉(300773) 股吧
  • 商城县建设局网站湖南省做网站的
  • 凡科建站后属于自己的网站吗网站设计培训班询
  • 新乡做网站优化长春老火车站图片
  • 图书馆网站建设总结wordpress edd插件
  • 九江网站推广徽hyhyk1WordPress配置七牛代码
  • 网络网站知识app公司注册名字大全免费
  • 网站建设计算机人员招聘海淀手机网站设计公司
  • 中森网站建设公司保定到沧州
  • 苏州行业网站建设服务百度识图以图搜图
  • 南京高端网站制作公司住建城乡建设部网站
  • 深圳动态科技集团网站企业网站建设的类型主要有
  • 网站收录了没有排名深圳H5网站开发
  • 如何在网站上做免费广告做网站应该了解什么软件